본문 바로가기
유니티

[유니티] 자주 쓰는 Attribute 정리

by 몽실이 2021. 2. 1.

1.[ConTextMenu("표기 이름")]

인스펙터창에서 함수를 실행할 수 있게 만들어줌

사용 법 : 실행 원하는 함수위에 쓰고 ("표기 이름")

1
2
3
4
5
[ContextMenu("ContextMenuTest")]
void ContextMenuTest()
{
    Debug.Log("ContextMenuTest실행");
}
   cs

 

2.[ConTextMenuItem("표기 이름", "실행시킬 함수")]

인스펙터 상에서 변수에서 등록된 함수 실행

사용 법 : 변수 위에 쓰고 ("표기 이름", "실행 함수") 

1
2
3
4
5
6
7
    [ContextMenuItem("랜덤 숫자 입력""RandomNum")]
    public int Num;
 
    void RandomNum()
    {
        Num = Random.Range(0100);
    }
cs
 

3.[Header("표기 이름")]

보기 편하게 변수위에 어떤 변수인지 표시를 나타낼 수 있음

사용 법 : public 변수 위에 쓰고 ("표기 이름") 

1
2
3
4
5
6
7
    [Header("테스트 변수")]
    public int TestNum;
    public string TestName;
 
    [Header("실제 변수")]
    public int Num;
    public int String;
cs
 

4.[Space((int)간격 수)]

인스펙터 변수들을 원하는 간격만큼 띄울 수 있음

사용 법 : 변수 사이에 쓰고 원하는 간격 크기만큼 숫자 입력

1
2
3
4
5
    public int Num;
    public float Float;
    [Space(30)]
 
    public string Name;
cs

 

4.[SerializeField]

private 변수도 인스펙터 상에서 보일 수 있게해줌

사용 법 : 원하는 변수 위에 쓰기(밑에 변수 하나만 보여짐)

1
2
    [SerializeField]
    private int HideNum;
cs

 

5.[Serializable]

클래스나 구조체를 직렬화해서 인스펙터 상에서 보여지게 만들어 줌

-Joson화 하기위해서 자주 씀

사용 법 : MonoBegaviour 상속받지 않은 클래스 위에 쓰기

1
2
3
4
5
6
7
8
9
10
11
public class AttributeMng : MonoBehaviour
{
    public Unit TestUnit;
}
 
[System.Serializable]
public class Unit
{
    public int     Level;
    public string  Name;
}
cs

 

6.[HideInInspector]

public 변수를 인스펙터 상에서 보이지 않게 숨김

사용법 : 원하는 변수 위에 쓰기

1
2
    [HideInInspector]
    public int publicNum;
cs

 

7.[DisallowMultipleComponent]

한 게임오브젝트에 스크립트가 두개 이상 중복되지 않게 만듬

사용 법 : 클래스 위에 쓰기

1
2
3
4
5
[DisallowMultipleComponent]
public class AttributeMng : MonoBehaviour
{
 
}
cs

 

8.[DisallowMultipleComponent(type of (추가 컴포넌트))]

게임 오브젝트에 스크립트 추가시 지정해 둔 컴포넌트 자동으로 같이 추가됌

사용 법 : 클래스 위에 쓰고 (type of(추가 컴포넌트 쓰기))

1
2
3
4
5
[RequireComponent(typeof(Rigidbody))]
public class AttributeMng : MonoBehaviour
{
 
}
cs