본문 바로가기
개발/Unity

(Unity) 인스펙터 창을 깔끔하게! [Header] 속성 완벽 가이드

by DinoDev 2025. 12. 20.
728x90
반응형

유니티로 게임을 개발하다 보면 MonoBehaviour 스크립트에 수많은 public 변수나 [SerializeField] 변수들이 쌓이게 됩니다.

변수가 5개, 10개를 넘어가기 시작하면 Inspector(인스펙터) 창은 그야말로 혼돈의 도가니가 되곤 하죠. 어떤 게 이동 속도인지, 어떤 게 공격력인지 한눈에 들어오지 않아 스크롤을 위아래로 내리며 시간을 낭비한 경험, 다들 있으시죠?

오늘은 코드 한 줄로 여러분의 인스펙터 창을 전문가처럼 깔끔하게 정리해 주는 [Header] 속성에 대해 알아보겠습니다.


1. [Header] 속성이란?

[Header]는 유니티 인스펙터 창에서 변수들 위에 굵은 제목(라벨)을 달아주는 속성(Attribute)입니다.

기능적으로 게임 로직에 아무런 영향을 주지 않지만, 개발자(또는 레벨 디자이너)가 인스펙터 창을 볼 때 변수들의 카테고리를 시각적으로 구분해 주는 아주 강력한 도구입니다.

사용법

사용법은 매우 간단합니다. 변수 선언부 바로 위에 [Header("제목")]만 적어주면 됩니다.

[Header("보여질 텍스트")]
public int myVariable;

2. 실제 예제로 비교하기

RPG 게임의 플레이어 스크립트를 작성한다고 가정해 봅시다. 체력, 마나, 이동 속도, 점프력, 공격력, 공격 범위 등 수많은 변수가 섞여 있다면 어떻게 보일까요?

❌ [Header] 적용 전

변수들이 아무런 구분 없이 나열되어 있어 가독성이 떨어집니다.

using UnityEngine;

public class PlayerStats : MonoBehaviour
{
    public float health = 100f;
    public float mana = 50f;
    public float moveSpeed = 5f;
    public float runMultiplier = 1.5f;
    public float jumpForce = 10f;
    public int attackDamage = 20;
    public float attackRange = 2.5f;
    public float attackSpeed = 1.2f;
}

✅ [Header] 적용 후

변수들을 성격에 맞게 그룹화하여 인스펙터에서 훨씬 직관적으로 보입니다.

using UnityEngine;

public class PlayerStats : MonoBehaviour
{
    [Header("Base Stats")] // 기본 스탯 그룹
    public float health = 100f;
    public float mana = 50f;

    [Header("Movement Settings")] // 이동 관련 설정 그룹
    public float moveSpeed = 5f;
    public float runMultiplier = 1.5f;
    public float jumpForce = 10f;

    [Header("Combat Settings")] // 전투 관련 설정 그룹
    public int attackDamage = 20;
    public float attackRange = 2.5f;
    public float attackSpeed = 1.2f;
}

이제 인스펙터 창을 보면 "Base Stats", "Movement Settings", "Combat Settings"라는 굵은 제목 아래에 변수들이 예쁘게 정렬된 것을 볼 수 있습니다.


3. 함께 쓰면 좋은 꿀팁 속성들

[Header]만 써도 훌륭하지만, 다음 속성들과 함께 사용하면 인스펙터의 가독성이 200% 상승합니다.

1) [Space]

[Header]는 제목을 달아주지만, 위쪽 변수와 간격을 벌려주지는 않습니다. 그룹 간에 시원한 여백을 주고 싶다면 [Space]를 사용하세요.

[Space(10)] // 10픽셀만큼 띄우기
[Header("Movement Settings")]
public float moveSpeed;

2) [Tooltip]

변수에 마우스를 올렸을 때 설명을 띄워주는 기능입니다. 협업할 때 필수적입니다.

[Header("Combat")]
[Tooltip("플레이어의 기본 공격 데미지입니다.")]
public int damage;

4. 주의사항

  • 따옴표 필수: [Header("제목")] 안에는 반드시 큰따옴표("")로 문자열을 감싸야 합니다.
  • 첫 번째 변수에만: 그룹의 가장 첫 번째 변수 위에만 적어주면 됩니다.
  • Private 변수: private 변수라도 [SerializeField]를 사용해 인스펙터에 노출시킨다면 [Header]를 적용할 수 있습니다.

마무리

작은 습관이 개발 속도를 바꿉니다. 지금 당장 여러분의 복잡한 스크립트를 열어 [Header] 한 줄을 추가해 보세요. 나중에 이 코드를 다시 볼 미래의 자신과, 함께 일하는 동료들이 여러분에게 고마워할 것입니다!

728x90
반응형