
게임에 변수가 많아지면 인스펙터의 정리가 필요합니다.
오늘은 인스펙터를 정리할 수 있는 어트리뷰트 몇 가지를 살펴보겠습니다!
1. 헤더 [Header]
C#
using UnityEngine;
public class Player : MonoBehaviour
{
[Header("Stats")]
public int health = 100;
public int mana = 50;
public int stamina = 75;
[Header("Movement")]
public float moveSpeed = 5.0f;
public float jumpHeight = 2.0f;
}
[Header] 어트리뷰트를 사용하면 인스펙터에 굵은 글씨로 제목이 생성됩니다.
코드 및 인스펙터에서 구획을 나누기에 유용합니다.
2. 설명서 [Tooltip]
C#
using UnityEngine;
public class Player : MonoBehaviour
{
[Tooltip("플레이어의 이동속도")]
public float moveSpeed = 5.0f;
[Tooltip("플레이어의 점프 높이")]
public float jumpHeight = 2.0f;
}
[Tooltip] 어트리뷰트를 사용하면, 인스펙터의 변수 위에 마우스를 올려놓으면 해당 변수의 설명을 보여줍니다.
변수의 이름 만으로 유추하기 어렵거나 추가적인 설명이 필요할 때 사용됩니다.
3. 슬라이더 [Range]
C#
using UnityEngine;
public class Player : MonoBehaviour
{
[Range(1, 100)] public int age;
[Range(0.0f, 200.0f)] public float height;
}
[Range] 어트리뷰트는 인스펙터에 일정 범위 내에서 조작 가능한 슬라이더를 추가해줍니다.
명확한 최소, 최댓값이 존재할 때 유용합니다.
4. 직렬화 [SerializeField]
C#
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private int _health = 100;
[SerializeField] private int _mana = 50;
}

[SerializeField] 어트리뷰트는 ‘직렬화’라고도 하며, private 변수를 인스펙터에서 보여지게 합니다.
굳이 public으로 선언 할 필요가 없는 변수 (타 클래스 등에서 접근 할 필요가 없는 변수)는 직렬화하여 인스펙터에서만 보여지게 만들 수 있습니다.
5. 마무리
유니티 문법 중 인스펙터를 깔끔하게 관리 할 수 있는 4가지의 대표적인 어트리뷰트들을 살펴봤습니다.
아래 4가지 어트리뷰트를 사용한 종합예제 코드가 있으니 여러분의 코드에도 적용해보세요!
C#
using UnityEngine;
public class Player : MonoBehaviour
{
[Header("기본 정보")]
[SerializeField] private string _characterName = "Mr.Kim";
[Header("전투 스탯")]
[Tooltip("캐릭터의 최대 체력 (0 ~ 1000)")]
[Range(0, 1000)]
public int maxHealth = 100;
[Tooltip("공격력")]
[SerializeField] private int _atk = 10;
}


