애트리뷰트 ( Attribute )
- Attribute : 코드나 변수에 의도, 조건 , 메타데이터를 부여하는 주석형 명령어
▼인스펙터 표시 제어 관련
- [SerializeField] : private 변수도 인스펙터에 표시하고 직렬화 가능
- [HideInInspector] : public 변수라도 인스펙터에 표시되지 않게 한다
- [Header("텍스트")] : 인스펙터에 제목을 표시 ( 섹션 구분용 )
- [Tooltip("설명문")] : 마우스 오버 시 도움말 문구 표시
- [Space(숫자)] : 인스펙터에서 항목 간 간격 추가
- [Range(min, max)] : 슬라이더 형태로 입력 제한
- [Multiline] : 여러 줄 텍스트 입력창 표시
- [TextArea(min, max)] : 인스펙터에서 지정된 크기의 텍스트박스 표시
▼실행 순서 / 라이프사이클 관련
- [RuntimeInitializeOnLoadMethod] : 게임 시작 시 자동 실행되는 정적 메서드 지정
- [InitializeOnLoad] : 에디터에서 스크립트가 로드될 때 실행 ( 에디터 스크립트 초기화 )
- [ExecuteInEditMode] : 에디터 상태에서도 Update( ) 등 실행
- [ExecuteAlways] : 실행 중이든 아니든 항상 실행 ( 에디터 + 플레이 모두 실행 )
- [DefaultExecutionOrder(숫자)] : 스크립트 실행 순서 지정 ( Update 순서 조정 )
▼직렬화 / 데이터 관련
- [System.Serializable] : 클래스나 구조체를 인스펙터에 표시할 수 있게 한다
- [NonSerialized] : 변수 직렬화 제외 ( pulic 이어도 저장 X , 저장 대상 제외 )
- [FormerlySerializedAs("oldName")] : 변수 이름이 바껴도 기존 저장 데이터 유지 ( 이름 변경 호환성 유지 )
▼커스텀 에디터 / 속성 검사 관련
- [CustomEditor(typeof(타입))] : 특정 클래스에 대한 커스텀 인스펙터 저장 ( 직접 인스펙터 제작 )
- [CanEditMultipleObjects] : 여러 오브젝트를 동시에 수정 가능 ( 다중 선택 편집 허용 )
- [ContextMenu("메뉴이름")] : 인스펙터에서 함수 직접 실행 메뉴 추가 ( 버튼처럼 클릭 실행 )
- [ContextMenuItem("버튼이름", "함수명")] : 특정 변수 옆에 버튼 추가
- [AddComponentMenu("메뉴경로")] : Add Component 메뉴에 항목 추가 ( 컴포넌트 추가 경로 설정 )
- [DisallowMultipleComponent] : 하나의 오브젝트에 중복 추가 방지
- [RequireComponent(typeof(타입))] : 필요한 컴포넌트를 자동 추가
▼디버깅 / 개발 편의 관련
- [Conditional("UNITY_EDITOR")] : 특정 조건일 때만 실행 ( 디버그용 )
- [Obsolete("메시지")] : 오래된 코드 경고 메세지 표시
- [Debuggable] : JIT 디버깅 관련 속성 지정
참고 자료
https://docs.unity3d.com/kr/2019.3/Manual/Attributes.html
'🧊Unity Basic > 애트리뷰트' 카테고리의 다른 글
| Attribute ( 애트리뷰트 ) (0) | 2025.10.14 |
|---|