2020. 5. 19. 21:45
Unity/C#
인스펙터계열 어트리뷰트
//해당 변수가 어떤 역할인지 위에 굵은 글씨로 표시해줌
[Header("헤더이름")]
//슬라이더로 표시해줌
[Range(0.5f,1.5f)]
//슬라이더바가 있는 멀티라인
[TextArea(1,30)]
public string csvData;
//슬라이더바가 없는 고정된 멀티라인
[Mutiline]
public string text;
변수계열 어트리뷰트
//인스펙터의 변수1에 할당되어있던걸 변수2로 할당함
[UnityEngine.Serialization.FormerlySerializedAs("변수1")]
public int 변수2;
클래스계열 어트리뷰트
//해당 클래스의 인스펙터를 여러개 동시에 수정가능하도록 함
[CanEditMultipleObjects]
//항상 작동함
[ExecuteAlways]
//해당 클래스가 에디터상태에서도 동작함
[ExecuteInEditMode]
//에디터가 시작될때 호출됨
[UnityEditor.InitializeOnLoad]
//에디터가 시작될때 해당 메소드가 호출됨 static 메소드만 가능
[UnityEditor.InitializeOnLoadMethod]
//특정 컴포넌트를 강제로 추가시킴,클래스 위에 삽입함
[RequireComponent(typeof(Rigidbody))]
//없어질 함수라고 선언함, 클래스계열에도 사용가능하다
[System.Obsolete("미사용되는 함수입니다")]
//동일한 컴포넌트는 2개이상 적용 불가
[DisallowMultipleComponent]
함수계열 어트리뷰트
//이건 좀 특이하니 하단 참고
[ContextMenu("버튼명")]
-ContextMenu
public int motionCount;
#if UNITY_EDITOR
[ContextMenu("함수명")]
public void UpdateMotionCount()
{
motionCount = GetNumberMotionsInBlendTree(GetAnimator(),0,"Blend Tree");
}
#endif
인스펙터의 컴포넌트 상단에 대고 우클릭하면 함수를 실행할수있는 메뉴가 나옴
프로퍼티 드로워 버튼 찾지 말고 이거 쓰자
미분류
//인스펙터에서 숨기고 지정된 값도 지움, 그리고 디버그모드에서는 보임
//json등에서 public인데 저장안되게 할때도 사용
[System.NonSerialized]
//인스펙터에서 숨기고 지정된 값은 지우지 않음, 디버그모드에서도 안보임
[HideInInspector]
//원래는 보이지 않아야할 클래스나 구조체등을 보이게 함
//클래스나 구조체형을 인스펙터에 표시할때 사용
[System.Serializable]
//private 필드를 보이게 함
//인스펙터에서 수정은 가능한데 스크립트로는 못하게 하는것
[SerializeField]
//선언된 Define이 있을때만 작동, #if와 조금 다른점은 define이 없을때 에러가 나지 않는다
[System.Diagnostics.Conditional("UNITY_EDITOR")]
이거랑 용법은 비슷한테 인스펙터를 제어하는건 프로퍼티 드로워를 참고
'Unity > C#' 카테고리의 다른 글
유니티 커스텀 인스펙터 (0) | 2020.05.19 |
---|---|
UGui 관련 (0) | 2020.05.19 |
안드로이드에서 뒤로가기 버튼을 누르면 종료됨 (0) | 2020.05.19 |