목표
- 속성에 대해 알아보자
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 | 게임 실행 시 처음 실행한다. 단 실제 기기에서 잘 동작하지 않는다. |
참고 자료
'프로그래밍 > Unity C#' 카테고리의 다른 글
[Unity] Tutorial 06 - Intermediate Scripting (LINQ) (0) | 2020.05.28 |
---|---|
[Unity] Tutorial 06 - Intermediate Scripting (Events) (0) | 2020.05.27 |
[Unity] Tutorial 06 - Intermediate Scripting (Delegates) (0) | 2020.05.27 |
[Unity] Tutorial 06 - Intermediate Scripting (Quaternions) (0) | 2020.05.27 |
[Unity] Tutorial 06 - Intermediate Scripting (Coroutines) (0) | 2020.05.27 |