지연된 초기화 Lazy Initialization

 

호출시점에 따라서 초기화가 안되었는데 다른 스크립트가 먼저 실행될 경우도있다.

이 경우 프로퍼티를 사용하여 지연된 초기화를 구현할 수 있다.

 

다만 사용할때마다 null 체크를 하기때문에

자주 사용되는 값일 경우에는 확실하게 초기화를 하거나, bool 값으로 따로 초기화 플래그를 세우는게 나을 듯 하다.

 

[SerializeField]
private GameObject _Castle;
public GameObject Castle {
    get
    {
        if (_Castle == null)
        {
            _Castle = GameObject.FindGameObjectWithTag("Castle");
        }
        return _Castle;
    }
    set {
        _Castle = value;
    }
}

댓글

Designed by JB FACTORY