Unity 사용자 매뉴얼: 사용자 인터페이스(UI) 생성
개요
이 문서는 Unity에서 사용자 인터페이스(UI)를 생성하기 위한 API와 예제를 소개합니다. 아래에서는 토글을 사용하여 조건부 UI를 만드는 방법에 대해 설명합니다.
UI 툴킷
Unity의 UI 툴킷은 UI를 구조화하고 관리하는 데 필요한 강력한 도구입니다. 이 툴킷을 사용하면 동적이고 인터랙티브한 사용자 인터페이스를 쉽게 만들 수 있습니다.
토글을 사용하여 조건부 UI 만들기
이 예제에서는 두 개의 토글을 사용하여 커스텀 에디터 창을 생성합니다. 이를 통해 사용자는 다음을 수행할 수 있습니다:
- 레이블 표시 또는 숨기기
- 버튼 활성화 또는 비활성화
예제 생성
예제를 생성하기 위해 아래의 단계를 따릅니다:
- 프로젝트 생성: 임의의 템플릿을 사용하여 Unity 프로젝트를 생성합니다.
- Editor 폴더 만들기: 프로젝트 창에서
Editor
라는 이름의 폴더를 만듭니다. - C# 스크립트 파일 생성:
Editor
폴더에ToggleExample
이라는 이름의 C# 스크립트 파일을 생성하고 다음 코드를 입력합니다:
using UnityEngine;
using UnityEditor;
using UnityEngine.UIElements;
namespace Samples.Editor.Controls
{
public class ToggleExample : EditorWindow
{
private Toggle showToggle;
private Toggle activateToggle;
private Label labelToShow;
private Button buttonToActivate;
[MenuItem("Window/ToggleExample")]
public static void OpenWindow()
{
var window = GetWindow<ToggleExample>("Controls: Toggle Sample");
window.minSize = new Vector2(200, 170);
EditorGUIUtility.PingObject(MonoScript.FromScriptableObject(window));
}
public void CreateGUI()
{
showToggle = new Toggle("Show label")
{
value = true
};
activateToggle = new Toggle("Active button")
{
value = true
};
labelToShow = new Label("This label is shown when the above toggle is set to On");
buttonToActivate = new Button(() => Debug.Log("Button pressed!"))
{
text = "Active if above toggle is On"
};
rootVisualElement.Add(showToggle);
rootVisualElement.Add(labelToShow);
rootVisualElement.Add(activateToggle);
rootVisualElement.Add(buttonToActivate);
showToggle.RegisterValueChangedCallback(evt => labelToShow.visible = evt.newValue);
activateToggle.RegisterValueChangedCallback(evt => buttonToActivate.SetEnabled(evt.newValue));
}
}
}
- 예제 사용하기: 메뉴에서
Window > ToggleExample
을 선택하여 예제를 확인합니다.
추가 리소스
- 팝업 창 만들기
- 두 가지 속성을 사용하여 커스텀 컨트롤 만들기
표
항목 | 설명 |
---|---|
UI 툴킷 | 사용자 인터페이스를 만드는 데 필요한 도구와 자원 |
토글 | 사용자가 선택할 수 있는 맞춤형 UI 요소 |
Label | 사용자가 볼 수 있는 텍스트 라벨 |
Button | 클릭할 수 있는 버튼 |
EditorWindow | Unity의 에디터 창을 확장하는 데 사용되는 클래스 |
RegisterValueChangedCallback | 값 변경 시 호출될 메서드를 등록하는 기능 |
저작권
Copyright © 2022 Unity Technologies. Publication 2022.3