🌍 Unity/유니티 프로그래밍
지연된 초기화 Lazy Initialization
맨텀
2018. 12. 27. 15:49
호출시점에 따라서 초기화가 안되었는데 다른 스크립트가 먼저 실행될 경우도있다.
이 경우 프로퍼티를 사용하여 지연된 초기화를 구현할 수 있다.
다만 사용할때마다 null 체크를 하기때문에
자주 사용되는 값일 경우에는 확실하게 초기화를 하거나, bool 값으로 따로 초기화 플래그를 세우는게 나을 듯 하다.
[SerializeField]
private GameObject _Castle;
public GameObject Castle {
get
{
if (_Castle == null)
{
_Castle = GameObject.FindGameObjectWithTag("Castle");
}
return _Castle;
}
set {
_Castle = value;
}
}