오늘 수업 중에 Attribute에 대한 내용과 코루틴, 전 처리자 외 등등에 관련된 내용이 나왔습니다. 그간 강의에서 [SerailizeField]라고 하여 inspector에서 값을 전달하기 편하게 만들어주는 Attribute를 잘 썼었기에 이번 기회에 한 번 정리해보았습니다.
Attribute 명칭 | 설명 | 예시 |
SerializeField | 변수를 인스펙터에 표시 | [SerializeField] private 변수; |
Header | 변수 위에 타이틀을 설정하여 인스펙터에서 카테고리 분류 | [Header("스킬")] public 변수; |
HideInInspector | SerializeField와 반대로 변수를 인스펙터 창에서 숨김. | [HideInInspector] public 변수; |
Range | 범위를 설정하면 "슬라이드 바"로 범위를 제한 | [Range(0, 5)] int 변수; |
MenuItem | 제목 바 아래 'File, Edit' 등에 바로가기를 만들 수 있습니다. | [MenuItem('Tools/Debug/F")] public void 메서드() {} |
ExecuteInEditMode |
플레이 모드가 아니더라도 컴포넌트가 동작하도록 함. | [ExecuteInEditMode] class 클래스{} |
정리한 내용은 위와 같습니다. 유니티에서 더 다양한 정보를 확인할 수 있습니다.
ContextMenu - Unity 스크립팅 API
The ContextMenu attribute allows you to add commands to the context menu.
docs.unity3d.com
내용이 조금 부족한듯하여 전처리기에 대한 내용만 간략히 담아보겠습니다. 제가 확인하고 사용할만한 전처리기는 다음과 같습니다.
#if | 기본 if문과 동일하게 사용하면 됩니다. if문이 끝나는 시점에 반드시 endif를 붙여야합니다. #if에서 비교하는 값은 #define이며, 유니티에서는 플랫폼별 컴파일 - Unity 매뉴얼 에서 사용할 목록을 확인할 수 있습니다. |
#else | |
#endif | |
#region | region은 이름의 뜻대로 #region ~ #endregion까지의 범위를 지정합니다. 주석으로 설명을 하나씩 적는 것보다 구역을 상세하게 나누고 region으로 적어주는 편이 가독성이 더 좋게 느껴졌습니다. |
#endregion |
오늘은 대체로 잘 안 써본 기능들, 낯선 기능들을 글로 담으면서 스스로에게 도움이 되는 내용을 찾으려고 하니 더 어려운 거 같습니다. 아마 빌드 전까지는 전처리기를 사용할 가능성은 낮고, 당장에 사용하기 좋고 써볼만한 것은 Attribute로 생각됩니다.
'유니티 스파르타 캠프 5주차' 카테고리의 다른 글
250509 유니티 스크립트 분할 생각해보기 (0) | 2025.05.09 |
---|---|
240507 백준 코딩테스트 문제 (0) | 2025.05.07 |