본문 바로가기

유니티 스파르타 캠프 5주차

240508 작업에 유용한 유니티 Attribute 종류

오늘 수업 중에 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

 

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로 생각됩니다.