Unity IMGUI 사용자 인터페이스(UI) 생성 가이드

소개

Unity의 Immediate Mode GUI(IMGUI)를 사용하여 게임의 사용자 인터페이스를 만들 수 있습니다. IMGUI는 두 가지 레이아웃 모드, 즉 고정 레이아웃과 자동 레이아웃을 지원하여 UI 요소의 배치를 효율적으로 수행할 수 있도록 돕습니다.

레이아웃 모드

IMGUI 시스템은 두 가지 모드를 제공합니다: - 고정 레이아웃: 사전에 정의된 위치에 UI 요소를 배치합니다. - 자동 레이아웃: UI 요소의 수를 모르는 경우 유용합니다. 컨트롤 함수 호출 시 GUI 대신 GUILayout을 사용해 자동으로 배치됩니다.

사용 예:

void OnGUI () {
    // 고정 레이아웃
    GUI.Button(new Rect(25, 25, 100, 30), "고정 레이아웃 버튼");

    // 자동 레이아웃
    GUILayout.Button("자동 레이아웃 버튼");
}

컨트롤 정렬

컨트롤의 배치 및 그룹화 방법은 사용 중인 레이아웃 모드에 따라 다릅니다. - 고정 레이아웃 모드: GUI.BeginGroup()GUI.EndGroup()을 사용하여 그룹을 정의합니다. - 자동 레이아웃 모드: GUILayout.BeginArea(), GUILayout.BeginHorizontal(), GUILayout.BeginVertical()와 같은 함수를 사용하여 컨트롤 그룹화가 가능합니다.

고정 레이아웃 - 그룹 사용 예

void OnGUI () {
    // 화면 중앙에 그룹을 만듭니다.
    GUI.BeginGroup(new Rect(Screen.width / 2 - 50, Screen.height / 2 - 50, 100, 100));
    GUI.Box(new Rect(0, 0, 100, 100), "그룹 위치");
    GUI.Button(new Rect(10, 40, 80, 30), "클릭하세요");
    GUI.EndGroup ();
}

자동 레이아웃 - 영역

자동 레이아웃에서 영역은 UI 요소를 배치할 위치를 설정하는 용도로 사용됩니다. 컨트롤은 지정된 영역의 왼쪽 상단에서부터 배치됩니다.

영역 사용 예

void OnGUI () {
    GUILayout.Button("영역 밖에 있는 버튼");
    GUILayout.BeginArea(new Rect(Screen.width / 2, Screen.height / 2, 300, 300));
    GUILayout.Button("영역 안에 있는 버튼");
    GUILayout.EndArea ();
}

가로 및 세로 그룹

자동 레이아웃에서는 수평 및 수직 그룹을 사용할 수 있어, 여러 컨트롤을 쉽게 배치할 수 있습니다.

가로 및 세로 그룹 사용 예

void OnGUI() {
    GUILayout.BeginArea(new Rect(0, 0, 200, 60));
    GUILayout.BeginHorizontal();
    if (GUILayout.RepeatButton("버튼 증가")) {
        // 로직
    }

    GUILayout.BeginVertical();
    GUILayout.Box("슬라이더 값: ");
    // 슬라이더 코드
    GUILayout.EndVertical();
    GUILayout.EndHorizontal();
    GUILayout.EndArea();
}

GUILayoutOptions 사용

GUILayoutOptions을 사용하여 UI 컨트롤의 크기를 조정할 수 있습니다. 예를 들어, 버튼의 너비를 특정 값으로 설정할 수 있습니다.

GUILayoutOptions 사용 예

void OnGUI() {
    GUILayout.BeginArea(new Rect(100, 50, Screen.width - 200, Screen.height - 100));
    GUILayout.Button("보통 자동 레이아웃 버튼");
    GUILayout.Button("너비 오버라이딩", GUILayout.Width(95));
    GUILayout.EndArea();
}

결론

Unity의 IMGUI를 사용하면 강력하고 유연한 UI 디자인이 가능합니다. 위의 예제를 참고하여 더욱 복잡한 UI를 만들기 위해 다양한 컨트롤 및 배치 방식을 조합해보세요.

Read more

Unity 매뉴얼 스크립팅 API 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 간단한 해설과 활용 예제들을 포함하고 있습니다. Unity는 게임 개발 플랫폼으로, 스크립팅 API를 통해 게임의 다양한 기능을 제어하고 수정할 수 있습니다. 버전 Unity 스크립팅 API는 여러 버전으로 제공됩니다. 주의 깊게 선택하여 사용하는 것이 중요합니다. 버전 설명 2023.2 최신 기능 및 버그 수정이 추가됨

By 이재협/실장/시스템개발실/PHYSIA

Unity 매뉴얼 스크립팅 API 설명서 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 정보를 제공하며, 버전에 따라 다르게 적용되는 내용들을 설명합니다. 본 문서에서는 주요 내용을 간단히 정리하고 활용 가능 예제를 통해 이해를 돕겠습니다. 기본 개념 Unity에서 스크립팅 API는 게임 오브젝트와 그들의 동작을 제어하기 위한 강력한 도구입니다. 이를 통해 게임의 로직, 물리 엔진, 애니메이션 및 사용자 인터페이스를

By 이재협/실장/시스템개발실/PHYSIA

Unity 스크립팅 API 가이드

이 문서는 Unity의 스크립팅 API에 대해 설명합니다. Unity는 게임 개발을 위한 인기 있는 엔진으로, 강력한 스크립팅 기능을 제공합니다. 이 가이드는 Unity에서 스크립트를 작성하고 사용하는 방법을 이해하는 데 도움을 드립니다. 목차 * Unity 스크립팅 소개 * 기본 스크립트 생성 * 스크립트 사용 예제 * 응용 프로그램 * 참고 자료 Unity 스크립팅 소개 Unity는 C# 프로그래밍 언어를

By 이재협/실장/시스템개발실/PHYSIA