크래시의 원인: 애드몹은 유니티 메인 Thread가 아닌 별도의 Thread에서 돌아가기 때문에 Callback에서 TMPro 등 유니티 요소를 건드릴 경우 에러가 뜨며 앱이 꺼진다. 유니티 요소는 메인스레드에서만 건드리는게 원칙(?)이기 때문이다.

 

해결책: 보상 받는 admob 의 콜백 또는 AdClosed() 콜백에서 바로 건드리지 말고, 

아래 코드처럼 0.1f 초 딜레이를 준다.

 

// 애드몹 내부의 콜백메서드

void OnAdFullScreenContentClosed(){
      StartCoroutine(GetReward());
}

// 딜레이 줘서 유니티 메인스레드로 합류되도록 
IEnumerate GetReward(){

     yield return new Wait(0.1f);

    // 이후 보상처리 ( 게임 코드)
    popup.gameObject.SetActive(true); // 등등
}

 

 

 

+ Recent posts