rrrfffrrr/UnityKakaotalkAPI

[Android] 콜백이 Unity3D의 메인 스레드에서 분리되어 실행되는 문제

Opened this issue · 2 comments

원인

카카오톡 sdk의 콜백이 타 쓰레드에서 실행됨

증상

콜백에서 유니티의 GameObject를 다루거나 유니티 관련 함수를 사용하지 못함

해결 방법

  1. 플러그인에서 Runnable을 사용하여 Context에 실행 <- main thread?
  2. 유니티 C#에서 메세지 펌핑

1번 테스트

코드

Handler(context!!.mainLooper).post { callback.onFail ... }

결과

해결되지 않음

1번 테스트 실패 이유

유니티는 Single threaded지만 안드로이드 빌드에서는 main thread와 분리되어 UnityMain 이라는 background thread로 동작하게 된다.
따라서 mainLooper를 사용해도 다른 thread에서 콜이 이루어진다.