유니티의 속성 (Attributes)
스크립트에서 클래스와 속성 또는 함수와 변수 위에 명시해 속성에 해당하는 동작을 한다.
유니티에는 굉장히 많은 속성이 있지만, 오늘은 자주 사용되는 몇 개의 속성들을 정리해본다.
1. Serializable
- 인스펙터에는 클래스나 구조체를 표시할 수 없지만, Serializable를 사용하면, 인스펙터 창에 노출이 되어 편집이 가능하다.
2. SerializeField
- private 멤버를 인스펙터 창에 노출시킨다. 주로, 다른 클래스에서 참조하지 않지만, 변수를 인스펙터에 노출시켜 편집하고 싶을 때 사용한다.
public class AttributesTest : MonoBehaviour
{
[SerializeField] private int test = 0;
}
3. HideInInspector
- public 변수를 인스펙터 창에 노출시키지 않는다.
- 변수를 외부에 공개해야 하지만, 인스펙터에서 값을 수정할 필요가 없을 때 사용한다.
public class AttributesTest : MonoBehaviour
{
[HideInInspector] private int test = 0;
}
4. RequireComponent (typeof (Component)
- 컴포넌트를 추가할 때, 요청한 Type에 해당하는 컴포넌트가 없을 경우 자동으로 추가 요청한다.
- 인스펙터에 타이틀을 달 수 있다.
- 프로젝트의 규모가 커지면, 정리가 필수가 되기 때문에 중요하다.
6. Multiline (int)
- 라인 수를 늘려준다
- 장문의 문자열을 작성할 때 유요하다.
7. Range (int, int) // Range (float, float)
- 최소와 최대값을 기반으로 변수의 값을 슬라이드 바로 표시한다.
8. Space (int / float)
- 인스펙터 창에서 자료형 만큼의 간격을 조절할 수 있다.
- 필드 사이에 여백을 줄 수 있다.
- 마우스 커서를 올릴 경우 표시되는 툴팁을 설정할 수 있다.