Unity 사용자 매뉴얼 - 커스텀 컨트롤 만들기

Unity에서 커스텀 컨트롤을 만들기 위한 방법과 다양한 활용 예제에 대해 설명합니다.

커스텀 컨트롤 개요

커스텀 컨트롤은 VisualElement 클래스 또는 그 하위 클래스에서 파생된 C# 클래스를 사용하여 생성됩니다. 커스텀 컨트롤을 만들고 초기화하여 UI 빌더와 UXML에 노출할 수 있으며, 데이터 바인딩도 가능합니다.

커스텀 컨트롤 클래스 만들기

  1. VisualElement 또는 BindableElement와 같이 기본 클래스에서 상속받은 클래스를 생성합니다.
  2. INotifyValueChanged 인터페이스를 구현하여 값의 변경을 감지할 수 있습니다.
  3. 기본적인 UI 레이아웃을 설정합니다. 예를 들어, 왼쪽에는 레이블 요소, 오른쪽에는 입력 요소가 배치된 형태로 설정할 수 있습니다.

예시

public class MyCustomControl : BaseField<float> 
{
    // 커스텀 컨트롤의 세부 구현
}

커스텀 컨트롤 초기화

커스텀 컨트롤은 생성자에서 초기화할 수 있으며, UI에 추가될 때까지 초기화를 지연시킬 수 있습니다.

사용 예시

void OnEnable() 
{
    var myCustomElement = rootVisualElement.Q(className: "my-custom-element");
    myCustomElement.RegisterCallback<AttachToPanelEvent>(e => 
    {
        // UI에 추가될 때 동작
    });
    myCustomElement.RegisterCallback<DetachFromPanelEvent>(e => 
    {
        // UI에서 제거될 때 동작
    });
}

UXML 및 UI 빌더에 커스텀 컨트롤 노출

커스텀 컨트롤을 UXML 및 UI 빌더에서 사용하기 위해서는 해당 컨트롤을 노출하는 팩토리 클래스를 정의해야 합니다. 이때, UXML 속성과 C# 프로퍼티 이름이 일치해야 합니다.

C# 프로퍼티 UXML 속성
myFloat my-float
myInt my-int

데이터에 바인딩

커스텀 컨트롤을 직렬화된 프로퍼티에 바인딩하여 값의 동기화를 가능하게 만들 수 있습니다. BindableElement에서 상속받아 바인딩 기능을 구현합니다.

커스텀 스타일링

커스텀 컨트롤은 USS를 사용하여 스타일을 지정할 수 있으며, 필요한 경우 커스텀 USS 프로퍼티를 생성하고 직접 수정할 수 있습니다.

예시

CustomStyleProperty<int> myCustomStyle = new CustomStyleProperty<int>("--my-custom-property");

이벤트 처리

커스텀 컨트롤의 이벤트 처리는 Unity의 이벤트 처리 방식과 동일하게 진행될 수 있습니다. 키보드 및 마우스 이벤트 처리를 위해 생성자에서 해당 이벤트 유형에 대한 콜백을 등록합니다.

UI 빌더에서 커스텀 컨트롤 사용하기

  1. UI 빌더에서 Library > Project > Custom Controls (C#) 선택
  2. 커스텀 컨트롤을 계층 창으로 드래그합니다.

베스트 프랙티스

  • 커스텀 컨트롤의 외부 인터페이스 및 기능은 UXML 속성으로 노출하고, 모양과 관련된 프로퍼티는 USS 프로퍼티로 노출하는 것이 좋습니다.
  • UXML의 데이터 형식은 기본 데이터 형식 집합에 제한되므로 주의해야 합니다.
  • C# 코드에서는 클래스 이름이나 속성을 상수로 정의하여 사용합니다.

추가 리소스

  • 커스텀 컨트롤 만들기
  • 슬라이드 토글 커스텀 컨트롤 만들기
  • 방사형 진행률 표시기 만들기
  • 바인딩 가능한 커스텀 컨트롤 만들기
  • 커스텀 스타일 만들기

이 문서는 Unity의 커스텀 컨트롤 생성에 대한 기본 이해를 돕기 위한 것이며, 제공된 코드 예시는 실제 구현 시 참고용입니다.

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