변수가 많아지면 유니티 인스펙터에서 확인하기 힘들어지기 때문에
인스펙터를 정리하고 싶을때가 있다.
커스텀 에디터를 활용하면 좋겠지만,
단순 변수를 편하기 보기위해라는 용도라면 커스텀 에디터는 너무나 수고스러운 일.
일일히 스크립트 만들기도 귀찮고.
유니티 Attribute 기능으로 어느정도 정리가 가능하다.
1. [SerializeField]
- private 변수를 인스펙터에 노출시킴
- [System.Serializable]을 사용한 Structure 타입 변수에 사용하면 인스펙터에 노출되는 효과.
2. [HideInInspector]
- 이건 반대로 public 이라도 인스펙터에 노출시키지 않음
3. [Range(최소값,최대값)]
- 인스펙터에서 입력할 때 변수의 수치를 제한해서 입력할 수 있다.
- 실제 값을 제한시키는 효과는 없어서 넘는 수치를 대입하면 그대로 들어간다.
4. [Header("라벨명"]
5. [Space] , [Space(int height)]
- 변수 사이에 한줄을 띄워준다 라벨을 굳이 달지 않더라도 정리하고 싶을때 사용한다.
- 뒤에 매개변수로 높이를 넣어줄 수 있다.
6. [TextArea] , [Multiline] , [TextArea(int line)] , [Multiline(int line)]
- string 타입의 변수를 여러줄로 입력할 수 있다.
- 변수명 라벨과 다른줄로 표기되느냐 한 줄로 표기되는냐 차이
- 이 attribute를 사용하면 string 타입에서 엔터를 따로 처리안해줘도 된다!
- 역시 뒤쪽에 int값으로 줄 갯수를 넣어줄 수 있다. 디폴트는 3
7. [ColorUsage(bool alphaView)]
- 컬러픽커를 사용한다. 뒤의 bool 값은 알파값도 포함하는지여부
프로퍼티를 여러개 사용하고 싶다면 [SerializeField, TextArea] 이와 같이 ,를 써서 이어서 써주면된다.
이외에도 커스텀으로 프로퍼티를 더 만들 수도있다.
다른사람이 만들어놓은 프로퍼티를 예시로 들자면 아래링크 참조.
https://github.com/dbrizov/NaughtyAttributes
더 많은 프로퍼티를 제공하는 유료에셋은 아래 글 참조
https://mentum.tistory.com/388
'🌍 Unity > 유니티 엔진 동작 관련' 카테고리의 다른 글
유니티 인터페이스로 호출 (Unity interface call / check) (0) | 2019.11.21 |
---|---|
Unity 씬 로딩 될때마다 호출되는 함수 (OnSceneLoaded ) (0) | 2019.10.15 |
유니티 StopCoroutine이 동작하지 않을 때 Unity Stop Coroutine doesn't work (0) | 2019.05.01 |
유니티 커스텀 프로퍼티 드로워 (Unity Custom property drawer) (0) | 2019.01.06 |
Editor 에디터 인스펙터에 버튼 만들기 (0) | 2018.01.03 |