Unity/Problems (11) 썸네일형 리스트형 생명주기로 인한 NullReferenceException ObjectPool을 Load하는데 NullReferenceException에러가 생겼다. 문제는 ObjectPool.GetInstance().LoadAllAsset(); 에서 NullReferenceException 에러가 났는데, ObjectPool에서부터 에러가난것 같아 보였다. 해결 에러의 이유는 new 지정자를 사용해 객체화 시켜주는 것을 Awake에 해주냐, Start에 해주냐의 문제였다. 생명주기를 고려했을때 인스턴스화와 동시에 Awake가 먼저 실행되고 그 후에 Start가 실행되기 때문에 new 지정자를 Start에서 사용했을때 우선순위의 문제가 생기게 되는것이다. 그렇다면 왜? Start에서 사용했을때는 안되는걸까? 그리고 스크립트가 많아지고 겹치게되면 생명주기가 어떻게 되는걸까? 강사.. 2020-05-14 유니티 싱글턴 패턴 이해하지 못했던것 ObjectPool.instance = this; Mono를 상속받기 때문에 사실 this는 Mono가 된다. 즉 현재 스크립트를 말하게 됨 Mono를 상속받기 때문에 Mono의 최대강점인 컴포넌트로 이용이 가능하게된다. ObjectPool.instance = new ObjectPool(); 일단 MonoBehaviour 를 상속받은 클래스는 new 로 동적 할당할 수 없다. 위에서 ObjectPool은 Mono를 상속 받기 때문에 new를 사용할 수 없는것이다. 내가 이게 갑자기 헷갈렸던 이유는 DataManager 생성에 있었다. 위의 코드에서 DataManager는 아무것도 상속받지 않는다. 그렇기 때문에 new 지정자를 사용할 수 있는데, DataManager를 코딩하던 도중에 ObjectPool.. 2020-05-09 Component, Class, GameObject 개념의 모호 강사님의 코드 이 부분에서 이해가 전혀가지 않는 부분이 생겼다. API를 그대로 갖다쓰는데 API의 구동원리를 알고 싶은게아니라, Component와 Class, GameObject 개념이 모호해서 코드를 읽을수가 없다. 내가 생각한건.. 1번째. GameObject 형식인 heroGo에 Hero라는 Component를 AddComponent한다. 2번째. Hero 사용자정의 형식인 hero에 1번째 했던 값을 넣는다.(why? 반환하기 위해) 3번째. GameObject 형식인 modelGo의 부모를 heroGo로 지정한다(상속). 4번째. 2번째 값을 넣어놓은 Hero 사용자정의 형식인 hero 를 반환한다. 여기서 2번째 코드 Hero hero = heroGo.AddComponent(); 에서 왜이.. 이전 1 2 다음