ObjectPool을 Load하는데 NullReferenceException에러가 생겼다.
문제는 ObjectPool.GetInstance().LoadAllAsset(); 에서 NullReferenceException 에러가 났는데,
ObjectPool에서부터 에러가난것 같아 보였다.
해결
에러의 이유는 new 지정자를 사용해 객체화 시켜주는 것을 Awake에 해주냐,
Start에 해주냐의 문제였다.
생명주기를 고려했을때 인스턴스화와 동시에 Awake가 먼저 실행되고 그 후에 Start가 실행되기 때문에
new 지정자를 Start에서 사용했을때 우선순위의 문제가 생기게 되는것이다.
그렇다면 왜? Start에서 사용했을때는 안되는걸까?
그리고 스크립트가 많아지고 겹치게되면 생명주기가 어떻게 되는걸까?
강사님의 설명 : Start보다 Init이 더 먼저 실행되기 때문에 안됨.
객체화는 Awake에서 하자.
편안하게 해결되었다.
'Unity > Problems' 카테고리의 다른 글
2020-05-18 유니티 파일 입출력... (0) | 2020.05.18 |
---|---|
UnityException 오류 (0) | 2020.05.14 |
ArgumentException 오류 (0) | 2020.05.14 |
2020-05-14 유니티 싱글턴 패턴 이해하지 못했던것 (0) | 2020.05.14 |
2020-05-09 Component, Class, GameObject 개념의 모호 (0) | 2020.05.09 |