목표

  • 속성에 대해 알아보자

Attributes

  • 속성은 클래스위에 표시되어, 스크립트 프로퍼티나 함수에 특별한 동작을 나타낸다.
  • 속성은 크게, 인스펙터에 변수 표시 방법, 컴포넌트 관계, 에디터 동작, 메뉴 표시, 런타임 동작 등으로 나뉜다.
  • 속성은 Unity 버전별로 지원하는 내용이 조금씩 다르기 때문에, 설치된 버전의 도큐먼트를 읽어보는게 좋다.
  • 다만, .NET 라이브러리의 ThreadStatic 속성을 Unity 스크립트에 추가한 경우 충돌이 발생하기 때문에 사용해서는 안된다.

인스펙터 속성(Inspector Attributes)

속성 설명
HideInInspector 변수를 인스펙터 뷰에서 보이지 않도록 한다.
SerializeField private 멤버에 SerializeField 속성을 추가함으로써 Inspector에는 노출한다.
Ragne 변수값 범위를  지정한다.
Header 변수명이 인스펙터에 노출될때, 변수명 위에 볼드체로 라벨을 삽입한다.
Multiline 여러줄의 텍스트 필드로 문자열을 편집할 수 있도록 한다.
TextArea 높이가 유연하고 스크롤 가능한 텍스트 영역으로 편집할 수 있도록 한다.
Space 인스펙터에 변수를 표시할때, 변수간 표시 간격을 설정한다.
Tooltip 변수명에 설명을 삽입한다.

컴포넌트 속성(Componet Attributes)

속성 설명
DisallowMultipleComponent 하나의 GameObject에 동일한 Component를 여러개 추가할 수 없도록 금지한다.
RequireComponent 설정한 컴포넌트를 자동으로 추가한다.

에디터 속성(Editor Attributes)

속성 설명
InitializeOnLoad 정적 생성자(static constructor)를 사용하여, Unity 시작후 함수를 실행한다.
CustomEditor 커스텀 에디터의 자료 타입을 설정한다.
CanEditMultipleObjects 여러 오브젝트에서 커스텀 에디터를 수정할 수 있도록 한다.
MenuItem 상단 메뉴바에 메류를 생성하고, 함수와 연결한다.
DrawGizmo 기지모 랜더링할 조건을 설정한다.
CustomPropertyDrawer 유니티는 serialize된 데이터를 적절한 형태로 인스펙터에 노출하는데
적절한 형태의 인스펙터를 표시하는 과정을 수정할때 사용한다.

메뉴 속성(Menu Attributes)

속성 설명
AddComponentMenu 상단 메뉴바에 Component 메뉴 하위에 메뉴를 추가한다.
ContextMenu GameObject에 스크립트를 Attach하고나서, 톱니바퀴를 누르면 보이는 메뉴가 ContextMenu이다. 여기에 메뉴를 추가한다.

런타임 속성(Runtime Attributes)

속성 설명
ExecuteInEditMode Unity가 실행중이 아닌 Edit 모드에서도, 스크립트가 동작하도록 하는 속성이다.
RuntimeInitializeOnLoadMethod 게임 실행 시 처음 실행한다.
단 실제 기기에서 잘 동작하지 않는다.

참고 자료

+ Recent posts