Unity를 사용하면서 가장 어려웠던 점이라고 한다면, 3D 엔진이다 보니 어디에 어떤게 있는지, 헷갈린다.
유니티 경력이 쌓이면 쌓일수록 인스펙터를 정리하는 것이 습관이 되다보니 이걸 정리해야겠다는 생각으로 포스팅한다.
유니티 Attribute 란?
[HideInInspector]
public float strength;
아래 링크에서 더 많은 속성을 확인할 수 있다.
https://docs.unity3d.com/kr/2021.2/ScriptReference/AddComponentMenu.html
♣ 현업에서 자주 사용하는 Attribute 모음
1. AddComponentMenu
- AddComponentMenu는 엔진 상단에 Component 메뉴에 해당 어트리뷰트에 해당하는 스크립트를 표시하는 기능이다.
Scriptable 요소들이나 공통적으로 사용해야하는 클래스를 넣어두기 편하다.
[AddComponentMenu("UI/UIController")]
public class UIController : MonoBehaviour, IDragHandler, IEndDragHandler, IScrollHandler
{
}
결과화면
2. Space
- Space 속성은 Inspector를 한층 깨끗하게 해줄 수 있는 속성이다. Inspector 창에 공간을 띄어주는 역할을 한다.
일반적으로 이렇게 바로 붙은 상태로 표현된다.
public class UIController : MonoBehaviour, IDragHandler, IEndDragHandler, IScrollHandler
{
//Drag
[SerializeField]
private RectTransform rectTr;
[Space(20)] //Space Attribute
[SerializeField]
private Vector3 minitialScale;
}
이렇게 Space로 20만큼의 공간을 띄운다면,
아래의 결과 창과 동일하게 표현된다.
결과화면
3. SerializeField , HideInInspector
- 해당 속성들은 Inspector 창에 변수명을 표현할 것인지 안할것인지에 대한 속성값들이다.
[SerializeField]
private int testPriavteValue;
[SerializeField]
internal int testInteranlValue;
[SerializeField]
protected int testProtectedValue;
이렇게 접근제한자 형태의 모든 내용을 SerializeField 를 통해 표현할 수 있다.
결과화면
반대로 public 으로 선언된 변수의 경우 인스펙터 창에 바로 보여지게 되는데,
HideInInspector를 상단에 선언하면 인스펙터 창에 보이지 않게 된다.
결과화면
4. Header
- 해당 속성은 Inspector 창에서 상단에 타이틀을 기입할 수 있는 기능이다.
public class AttributeScripts : MonoBehaviour
{
[Header("Kyoungs Blog")]
public int testIntValue;
// Start is called before the first frame update
void Start()
{
}
}
결과화면
'Unity > UnityEditor' 카테고리의 다른 글
[UnityEditor] 인스펙터에서 Scene 로드 하는 방법 (1) | 2023.03.28 |
---|---|
[Localization] OdinInspector 와 Localization Editor 충돌 해결 (0) | 2022.10.14 |
[UnityEditor] 유니티 Attribute 인스펙터 정리 #2 (1) | 2022.08.25 |