크래시의 원인: 애드몹은 유니티 메인 Thread가 아닌 별도의 Thread에서 돌아가기 때문에 Callback에서 TMPro 등 유니티 요소를 건드릴 경우 에러가 뜨며 앱이 꺼진다. 유니티 요소는 메인스레드에서만 건드리는게 원칙(?)이기 때문이다.
해결책: 보상 받는 admob 의 콜백 또는 AdClosed() 콜백에서 바로 건드리지 말고,
아래 코드처럼 0.1f 초 딜레이를 준다.
// 애드몹 내부의 콜백메서드
void OnAdFullScreenContentClosed(){
StartCoroutine(GetReward());
}
// 딜레이 줘서 유니티 메인스레드로 합류되도록
IEnumerate GetReward(){
yield return new Wait(0.1f);
// 이후 보상처리 ( 게임 코드)
popup.gameObject.SetActive(true); // 등등
}
'프로그래밍 > 유니티 (unity)' 카테고리의 다른 글
unity admob 적용 후 실행시 바로 꺼지는 경우(crash) (0) | 2023.06.05 |
---|---|
unity) Exception: Field currentActivity or type signature not found 해결법 (0) | 2023.02.27 |
구글플레이게임즈 google cloud OAuth 단계 안넘어갈때 (0) | 2023.02.13 |
Google Cloud Platform에서 games, games_lite, drive.appdata 가 안뜰때 (0) | 2023.02.13 |
unity) check internet connection with google.com (0) | 2023.02.12 |