PROGRAMING📚/🔖Unity3D

Unity Inspector를 더 깔끔하게 만드는 방법 – Inspector Attribute 정리와 예제

__윤하루__ 2025. 7. 5. 18:57

Inspector Attribute, 함께 살펴보실까요?

Unity 스크립트에 [Header], [Tooltip] 같은 어트리뷰트를 붙이면 코드 몇 줄만으로 Inspector 창을 훨씬 읽기 쉽게 꾸밀 수 있습니다.
아래에서 하나씩 예시와 함께 차근차근 설명드릴게요.


1. Header

“이 필드들은 같은 주제로 묶어서 제목을 달아 주세요”라는 의미입니다.

[Header("플레이어 설정")]
public float speed = 5f;

2. Tooltip

변수 위에 마우스를 올렸을 때 짧은 설명이 뜨도록 합니다.

[Tooltip("플레이어가 이동하는 속도입니다.")]
public float moveSpeed = 5f;

3. Space

필드 사이를 띄워서 시각적으로 구분하고 싶을 때 사용합니다. 숫자를 넣어 간격(픽셀)을 조정할 수도 있습니다.

public int hp;

[Space(10)]
public int armor;

4. Range

슬라이더 UI가 생성돼 값 조정이 간편해집니다. int 또는 float 타입에만 적용할 수 있습니다.

[Range(0f, 10f)]
public float jumpPower;

[Range(1, 100)]
public int bulletCount;

5. SerializeField

private 필드라도 Inspector에 노출하고 싶을 때 붙입니다.

[SerializeField]
private int maxHP = 100;

6. HideInInspector

반대로, public 필드인데 Inspector에는 굳이 보이지 않아도 될 경우에 사용합니다.

[HideInInspector]
public string debugMessage = "디버그용 메시지입니다.";

7. Multiline

문자열(string)을 여러 줄로 입력할 수 있는 작은 텍스트 박스를 제공합니다.

[Multiline(3)]
public string dialogText;

8. TextArea

더 큰 텍스트 영역이 필요할 때 사용합니다. 최소·최대 줄 수를 지정할 수 있어요.

[TextArea(3, 10)]
public string storyDescription;

실전 예시: 캐릭터 설정 스크립트

using UnityEngine;

public class CharacterSettings : MonoBehaviour
{
    [Header("기본 정보")]
    public string characterName;

    [Tooltip("레벨이 오를수록 체력이 증가합니다.")]
    [Range(1, 100)]
    public int level;

    [Space(10)]
    [Header("전투 능력치")]
    [SerializeField]
    private int baseHP;

    [Range(0f, 100f)]
    public float attackPower;

    [HideInInspector]
    public bool isDebugMode;

    [TextArea(3, 6)]
    public string characterLore;
}

이처럼 어트리뷰트 몇 줄만 추가해도 Inspector가 훨씬 깔끔해집니다. 복잡한 커스텀 에디터를 작성하지 않아도 되니, 프로젝트 관리가 한결 수월해지겠죠?


한눈에 정리

Attribute 용도

Header 필드를 주제별로 묶어 제목 표시
Tooltip 마우스 오버 설명 추가
Space 필드 간 여백 삽입
Range 슬라이더 UI 제공
SerializeField private 필드를 Inspector에 노출
HideInInspector public 필드를 Inspector에서 숨김
Multiline / TextArea 여러 줄 문자열 입력 지원