본문 바로가기
개발/Unity

유니티 에디터 - 속성으로 인스펙터 정리하기 (Customizing the Inspector with Attributes)

by 피로물든딸기 2022. 7. 25.
반응형

Unity 전체 링크

 

유니티 에디터 기본 속성(Attribute)

 

Header - 제목을 만들어서 그룹화한다.

Range - 변수 범위를 슬라이더로 조절할 수 있다.

Tooltip - 마우스를 변수명에 가져다대면 설명문이 나온다.

Space - 한 칸 띄운다.

Multiline - 텍스트를 쓰는 공간을 만든다. (작은 칸)

TextArea - 텍스트를 쓰는 공간을 만든다. (넓은 칸)

HideInInspector - 변수를 숨긴다.

HelpURL - ? 마크를 누르면 해당 URL로 이동한다.

 

아래의 InspectorTest.cs를 아무 오브젝트에나 추가하자.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// Class 속성에만 사용가능
[HelpURL("https://bloodstrawberry.tistory.com/735")]
public class InspectorTest : MonoBehaviour
{
    [Header("Status")] // 제목 설정
    
    [Range(0, 100)] //슬라이드 바 설정
    public float hitPoint;
    public float power;
    [Multiline(2)] // 작은 텍스트 창
    public string description;

    [Space] // 1칸 띄우기
    [Space(9)] // 9칸 띄우기

    [Header("Magic")]
    [Range(1, 20), Tooltip("Magic Point")] // 툴팁
    public int manaPoint;
    public float magicPower; 
    [TextArea] // 큰 텍스트 창 
    public string magicSpell;

    [TextArea(4, 10)] // 큰 텍스트 창(minLines, maxLines)
    public string magicSpell2;

    [HideInInspector] // public이지만 인스펙터에서 보이지 않음.
    public int hidePower;
}

 

큐브에 추가하면 아래와 같이 보인다.


Range, Tooltip, Space 

 

Range로 슬라이드 바를 생성한다.

그리고 Tooltip으로 설명문이 나오게 된다.  두 개 이상의 Attribute는 ","를 사용한다.

float과 int 슬라이드 바가 생성되고 제한된 범위로만 설정 가능하다.

    [Range(0, 100)]
    public float hitPoint;
    
    ...
    
    [Range(1, 20), Tooltip("Magic Point")]
    public int manaPoint;

 

 

그리고 Mana Point에 마우스를 가져다대면 "Magic Point" 툴팁이 나오게 된다.

 

Space는 Inspector 창을 띄운다. 아래 코드로 인해 총 10칸이 생겼다.

    [Space] // 1칸 띄우기
    [Space(9)] // 9칸 띄우기


Multiline, Textline

 

MultilineTextline은 가로 크기의 차이가 있다.

또한 Textline최소 높이최대 높이를 설정할 수 있다.

    [Multiline(2)]
    public string description;

    ...
    
    [TextArea] 
    public string magicSpell;
    
    [TextArea(4, 10)]
    public string magicSpell2;

 

빨간 칸Multiline이고 파란 칸Textline이다. 


HideInInspector 

 

public 변수라도 Inspector에 사용하지 않으면 감춘다.

hidePower 변수가 Inspector에 있는지 확인해 보자.

    [HideInInspector]
    public int hidePower;

HelpURL

 

HelpURL은 클래스에 정의하는 속성이다.

[HelpURL("https://bloodstrawberry.tistory.com/735")]
public class InspectorTest : MonoBehaviour

 

HelpURL을 class 위에 선언하였다면 스크립트 옆의 ? 을 누르면 해당 URL로 이동한다.

 

URL을 설정하지 않았다면 아래의 유니티 API가 나오게 된다.

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글