안녕하세요. 괴발자 데브봉입니다.
오늘은 유니티의 SerializeField에 대해서 알아볼게요!
- 정의
- 유니티에서 해당 게임 오브젝트 C# 스크립트에서 전역 변수로 선언할 때 public 접근제한자로 설정하면 inspector창에 해당 변수가 보여지게 되지만, 객체간 변수에 접근하지 못하도록 private 접근제한자로 사용해야만 할때가 있는데 그때 SerializeField 사용하여 Inspector창에서는 그대로 보여지게 합니다.
- Inspector창이란?
- 현재 선택한 게임 오브젝트에 대한 상세 정보(연결된 모든 컴포넌트와 그 프로퍼티 등)가 표시되는 창이며 이 창을 통하여 게임 오브젝트의 기능을 수정할 수 있습니다.
특정 게임오브젝의 C# 스크립트에서 public으로 전역변수로 설정하면 Inspector 창에서 보여지게 됩니다.
public class RobotManager : MonoBehaviour
{
public int speed; <---speed 변수 public으로 추가
void Start()...
void Update()...
}
근데 유니티 에디터 Inspector창에서는 보여지고 싶지만 C# 스크립트 클래스간에서는 접근하지 못하도록 설정하고 싶을때 가 많은데요. 그때 우리는 앞에 SerializeField를 붙힙니다.
public class RobotManager : MonoBehaviour
{
[SerializeField] private int speed; <---Speed 변수 private으로 추가
void Start()...
void Update()...
}
SerializedField를 붙히면서 Inspector 창에서는 Speed가 여전히 보이지만 private으로 선언되어 C# 각 클래스간 접근은 하지 못하게 되었습니다.
이렇게 오늘은 간단히 SerializedField에 대해서 사용해 보았습니다.
읽어주셔서 감사합니다!
