728x90
Unity Inspector 속성(Attribute)은 스크립트의 변수와 동작을 Unity Editor에서 효율적으로 관리하게
1. [AddComponentMenu]
- 설명: AddComponent 메뉴에 스크립트를 추가하고 그룹화하여 관리.
- 사용 예: 특정 스크립트를 카테고리화해 찾기 쉽게 만듦.
효과: AddComponent 메뉴에 CustomScripts > MyCustomScript 경로로 표시.
[AddComponentMenu("CustomScripts/MyCustomScript")]
public class AddComponentMenuTest : MonoBehaviour { }
2. [ContextMenu] & [ContextMenuItem]
- [ContextMenu] 설명: Inspector의 톱니바퀴 메뉴에 항목 추가.
- [ContextMenuItem] 설명: 변수에 우클릭 메뉴 항목 추가.
- 사용 예: 함수나 변수를 편리하게 초기화하거나 디버깅할 때 사용.
public class ContextMenuTest : MonoBehaviour {
[ContextMenu("Do Something")]
void DoSomething() { Debug.Log("Do Something 실행!"); }
[ContextMenuItem("Reset String", "ResetTestString")]
public string testString = "Hello";
void ResetTestString() { testString = ""; }
}
3. [ExecuteInEditMode]
- 설명: 게임 실행 상태가 아닌 편집 상태에서도 동작.
- 사용 예: Inspector에서 값을 변경할 때, 즉시 결과를 반영.
[ExecuteInEditMode]
public class ExecuteInEditModeTest : MonoBehaviour {
public float scale = 1.0f;
void Update() {
this.transform.localScale = new Vector3(scale, scale, scale);
}
}
4. [Header]
- 설명: 변수 그룹의 제목을 표시하여 가독성 향상.
- 사용 예: 변수들을 카테고리별로 구분.
public class HeaderTest : MonoBehaviour {
[Header("Health Settings")]
public int maxHP;
public int currentHP;
[Header("Magic Settings")]
public int maxMP;
public int currentMP;
}
5. [HideInInspector]
- 설명: public 변수지만 Inspector에서 숨김.
- 사용 예: 디버깅용 변수나 노출이 불필요한 변수.
public class HideInInspectorTest : MonoBehaviour {
public int visibleValue = 10;
[HideInInspector]
public int hiddenValue = 20;
}
6. [Multiline]
- 설명: 여러 줄 문자열 입력창 생성.
- 사용 예: 긴 문자열 입력이 필요한 경우.
public class MultilineTest : MonoBehaviour {
[Multiline(5)]
public string multilineText = "여러 줄 문자열 입력 가능";
}
7. [Range]
- 설명: 슬라이더로 값 설정 및 범위 제한.
- 사용 예: 값의 유효 범위를 제한.
public class RangeTest : MonoBehaviour {
[Range(0, 10)]
public int intRange;
[Range(0.0f, 1.0f)]
public float floatRange;
}
8. [RequireComponent]
- 설명: 특정 컴포넌트를 강제로 추가.
- 사용 예: 필요한 컴포넌트를 자동으로 추가하여 런타임 오류 방지.
[RequireComponent(typeof(Rigidbody))]
public class RequireComponentTest : MonoBehaviour { }
9. [SerializeField]
- 설명: private 변수를 Inspector에 표시.
- 사용 예: 외부 노출이 필요하지만 캡슐화를 유지할 때.
public class SerializeFieldTest : MonoBehaviour {
[SerializeField]
private int privateValue = 10;
}
10. [Space]
- 설명: 변수 간 간격 추가.
- 사용 예: 가독성을 위해 변수 간격 조정.
public class SpaceTest : MonoBehaviour {
public int value1;
[Space(20)] // 20픽셀 간격 추가
public int value2;
}
11. [TextArea]
- 설명: 다중 줄 입력창 생성 (최소/최대 크기 설정 가능).
- 사용 예: 긴 텍스트를 입력하거나 설명을 기록할 때.
public class TextAreaTest : MonoBehaviour {
[TextArea(3, 10)]
public string largeText = "텍스트 입력 공간";
}
12. [Tooltip]
- 설명: 변수에 마우스를 올리면 툴팁 표시.
- 사용 예: 변수의 용도나 범위를 설명.
public class TooltipTest : MonoBehaviour {
[Tooltip("이 값은 게임의 난이도를 결정합니다.")]
public int difficultyLevel = 1;
}
13. [System.Serializable]
- 설명: 클래스나 구조체를 직렬화하여 Inspector에 표시.
- 사용 예: 구조체나 클래스를 Inspector에서 관리.
[System.Serializable]
public struct Stats {
public int strength;
public int agility;
}
public class SerializableTest : MonoBehaviour {
public Stats playerStats;
}
14. [System.NonSerialized]
- 설명: public 변수를 Inspector에서 숨김.
- 사용 예: Inspector 표시가 필요 없는 경우.
public class NonSerializedTest : MonoBehaviour {
public int visibleValue = 10;
[System.NonSerialized]
public int hiddenValue = 20;
}
15. [DisallowMultipleComponent]
- 설명: 동일한 컴포넌트가 중복 추가되지 않도록 제한.
- 사용 예: 단일 컴포넌트만 필요할 때.
[DisallowMultipleComponent]
public class SingleComponentTest : MonoBehaviour { }
728x90
'Unity' 카테고리의 다른 글
[Unity] WebGl환경 iis로 Websocket 통신 방법 Javascript NativePlugin (4) | 2024.12.27 |
---|---|
[Unity] InputSystem 사용방법(PlayerInputComponent와 Generate C# Class) (0) | 2024.12.27 |
[Unity][개념] UniTask VS 코루틴 (0) | 2024.09.10 |
[Unity] JobSystem(2) NativeContainer와 TransformAccessArray (1) | 2024.09.06 |
[Unity] JobSystem(1) 특징과 인터페이스 종류 (0) | 2024.09.06 |