• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

sub thread에서 Resource.Load가 가능한이유

22.01.13 13:54 작성 조회수 230

0

제가 개인적으로 진행하는 프로젝트에서 S_EnterGameHandler에서 UnityEngine.Resources.Load를 호출하면 

Load can only be called from the main thread.

와 같은 에러가 발생합니다.

하지만, 루키스님이 만드신 프로젝트, 10:39 S_EnterGameHandler에서 

GameObject player = Managers.Resource.Instantiate("Creature/Player");

ㄹ호출했습니다. 

처음 게임을 시작하면 object pooling된 object가 없으므로, Managers.Resource.Instantiate는 UnityEngine.Resources.Load를 호출합니다. 루키스님이 만든 게임에서는 에러가 발생하지 않아요. 어떻게 가능한건가요?

디버깅을 해보았고, S_EnterGameHandler를 호출한 thread(아마 mainthread가 아닌)가 UnityEngine.Resources.Load를 호출했습니다. 

 

답변 1

답변을 작성해보세요.

0

패킷 큐를 통해 유니티 메인 쓰레드에서 실행하게 유도하고 있습니다.