- 속성(Attribuites)은 스크립트에서 클래스, 프로퍼티 또는 함수 위에 명시하여 특별한 동작을 나타낼 수 있는 표식입니다.
[SerializeField]
- 접근 제한자를 private로 설정하더라도 인스펙터 창에서 직접적인 액세스를 가능하게 합니다.
- 이 속성은 변수말고도 구조체와 클래스를 직렬화 할 수 있습니다.
방법은 간단합니다. 구조체나 클래스 밖에 [Serializable]를 사용하면 됩니다.
[HideInInspector]
- public으로 생성한 변수를 인스펙터 창에서 숨기도록 해줍니다.
SerializeField의 반대 역할을 하는 속성입니다.
[RequireComponent]
- 스크립트를 적용한 객체에 설정한 컴포넌트가 없을 경우 설정한 컴포넌트를 자동으로 추가합니다.
- [RequireComponent(typeof(name))] 매개변수에 컴포넌트를 설정할 수 있습니다.
- 이미 있는 컴포넌트는 추가되지 않습니다.
위 사진의 경우는 이 스크립트를 적용 중인 객체가 Rigidbody, CharacterController, BoxCollider 컴포넌트가 없다면 자동으로 추가됩니다.
[Range Attribute]
- 인스펙터창에서 값을 조절하는 방식을 슬라이드 바로 변경합니다.
- [Range(min, max)] 매개변수에 최소값과 최대값을 지정할 수 있습니다.
[Head Attribute]
- 변수 위에 헤더를 달아 가독성을 높이는 효과가 있습니다.
- [Header(string)] 매개변수에 string으로 된 데이터를 입력합니다.
[Space Attribute]
- 인스펙터창에서 변수 사이의 공간의 크기를 지정합니다.
- [Space(num)] 매개변수에 값을 적지 않을 경우 기본값으로 적용됩니다.
- [Tooltip(string)] 인스펙터창 변수에 주석을 달 수 있습니다.