[Android] 콜백이 Unity3D의 메인 스레드에서 분리되어 실행되는 문제
Opened this issue · 2 comments
rrrfffrrr commented
원인
카카오톡 sdk의 콜백이 타 쓰레드에서 실행됨
증상
콜백에서 유니티의 GameObject를 다루거나 유니티 관련 함수를 사용하지 못함
해결 방법
- 플러그인에서 Runnable을 사용하여 Context에 실행 <- main thread?
- 유니티 C#에서 메세지 펌핑
rrrfffrrr commented
1번 테스트
코드
Handler(context!!.mainLooper).post { callback.onFail ... }
결과
해결되지 않음
rrrfffrrr commented
1번 테스트 실패 이유
유니티는 Single threaded지만 안드로이드 빌드에서는 main thread와 분리되어 UnityMain 이라는 background thread로 동작하게 된다.
따라서 mainLooper를 사용해도 다른 thread에서 콜이 이루어진다.