Unity

Unity Attribute (1번째/?번째)

psb08 2024. 10. 15. 00:23
728x90
반응형

Attribute (속성)은 class 위에 표시 됩니다.

간단하게 3개만 알아보도록 하겠습니다.

 

1. [SerializeField]

데이터를 직렬화 해주는 기능입니다.

대부분 변수의 위쪽 혹은 왼쪽에서 사용합니다.

[SerializeField] private float _speed = 5f;
// 혹은
[SerializeField]
protected float _gravity = 1f;

이런 느낌으로요

private, protected를 public과 같이 inspector 창에서 수정 가능하도록 해주지만 둘은 차이가 있습니다.

public은 다른 클래스에서 접근이 가능하도록 하지만, [SerializeField]를 사용하면 다른 클래스에서는 접근이 불가능합니다

 

 

2. [System.Serializable]

inspector에 보이지 않는 class나 struct 변수를 일반 변수처럼 inspector창에 보이게 하고, 수정이 가능하도록 합니다.

 

 

3. [System.Nonserialized] / [HideInInspector]

public으로 선언된 변수를 inspector에서 숨기고 싶을 때 사용합니다.

차이점은 Attribute 설정 전에 inspector에서 값을 변경했을 시

Nonserialized는 변경한 값이 저장되지만, HideInInspector는 변경한 값이 저장되지 않습니다.