본문 바로가기

개발/TIP

[C#, INSPECTOR] 유니티 인스펙터를 빠르고 간단하게 커스텀하기

유니티 에셋이나 누군가의 배포를 통해 다운받은 플러그인을 사용하다 보면, 인스펙터에 제목 라벨, 슬라이더 등의 UI로 이루어진 것을 보신적이 있으시죠?

이런 플러그인은 대부분 스크립트 별로 커스텀 에디터 스크립트를 작성하여 인스펙터를 꾸민거예요.

커스텀 에디터 스크립트를 작성하는건 생각보다 시간 투자도 많이 필요하고 번거롭고, 귀찮기까지 하죠.


이럴때 유니티에서 제공하는 몇가지 에디터 속성을 사용하면 인스펙터를 보다 쉽고 빠르게 커스텀할 수 있어요.

물론 커스텀 에디터 스크립트를 작성하는 것보다 디테일하거나 멋지게 커스텀 할 수는 없지만, 간단한 스크립트를 커스텀 할 땐 유용해요.




1. Header

인스펙터에 굵은(BOLD) 타입으로 라벨을 출력합니다. 변수들을 특정 목적에 따라 구분할 때 유용하게 사용할 수 있습니다.


사용 예제


public class CustomInspector : MonoBehaviour {
    [Header ("Input Values")]
    public int a;
    public int b;
}


2. Range

데이터 타입이 int 혹은 float 일때 입력받는 값을 범위 내에서 슬라이더로 조정할 수 있도록 만들어줍니다.


사용 예제


public class CustomInspector : MonoBehaviour {
    [Header ("Input Values")]
    [Range (1, 100)] public int a;
    [Range (-50, 50)] public int b;
}


3. Multiline

데이터 타입이 string 일때 생성되는 TextField를 여러줄이 입력 가능하도록 바꿔줍니다.

Before


After


사용 예제


public class CustomInspector : MonoBehaviour {
    [Header ("Input Values")]
    [Range (1, 100)] public int a;
    [Range (-50, 50)] public int b;

    [Multiline ()] public string multiLine;
}


4. Space

Inspector UI 사이에 공백을 추가합니다.


사용 예제


public class CustomInspector : MonoBehaviour {
    [Header ("Input Values")]
    [Range (1, 100)] public int a;
    [Range (-50, 50)] public int b;

    [Space()]
    [Multiline ()] public string multiLine;
}


5. TextArea

데이터 타입이 string 일때 TextArea로 출력합니다.



사용 예제


public class CustomInspector : MonoBehaviour {
    [Header ("Input Values")]
    [Range (1, 100)] public int a;
    [Range (-50, 50)] public int b;

    [Space()]
    [Multiline ()] public string multiLine;
    [TextArea ()] public string textArea;
}


6. ColorUsage

데이터 타입이 color 일때 ColorField와 ColorPicker를 옵션에 따라 변경합니다.

속성을 추가하지 않으면 일반 컬러 필드와 일발 컬러 피커가 출력됩니다.

일반 컬러 피커, HDR 컬러 피커, 알파 조정 없애기 등의 옵션이 있습니다. 아래는 일반 컬러 피커와 HDR 컬러 피커 비교입니다.


일반 컬러 필드와 피커


HDR 컬러 필드와 피커



사용 예제


public class CustomInspector : MonoBehaviour {
    
    .
    .
    .

    [Space()]
    public color normalColor;
    [ColorUsage (true, true)] public color hdrColor;
}


7. Tooltip

프로퍼티의 데이터 타입과 관계없이 해당 프로퍼티에 대한 설명 UI를 추가합니다.



사용 예제


public class CustomInspector : MonoBehaviour {
    
    .
    .
    .

    [Space()]
    [Tooltip ("이 곳에 값을 입력해주세요.")] public string value;
}