android Unity Admob插件;应用程序崩溃时,你试图改变“TextMesh,文本”

scyqe7ek  于 2023-06-20  发布在  Android
关注(0)|答案(3)|浏览(90)

1)我在https://github.com/googleads/googleads-mobile-unity上使用了示例项目
2)我在场景中添加了一个“TextMesh”对象(游戏对象名称:“屏幕文本”)。
3)我添加了以下行:

public class GoogleMobileAdsDemoScript : MonoBehaviour 
{
    TextMesh screenText;
...
...

public void Start()
{
    screenText = GameObject.Find("Screen Text").GetComponent<TextMesh>();
...
...

public void HandleRewardBasedVideoClosed(object sender, EventArgs args)
{
    screenText.text = "Test 1";
...
...

public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{
    screenText.text = "Test 2";
...
...

4)当视频完成或取消时,我试图更改文本,应用程序总是崩溃。
5)Unity版本:Unity 2017.3.1f1(64位)。Android SDK:27号站台。手机Note 5
这是个问题吗?还是我得去修什么东西
(Here是视频奖励时的日志文件:https://justpaste.it/7b1hn

mzaanser

mzaanser1#

为了将来的参考,是的,它经常发生。这不是一个简单的缺少引用的问题。
我也试过用一张图片创建画布:没有崩溃。然后我试着用TextMeshPro文本创建一个画布:哗啦!
我发现的最简单的修复方法(经过许多小时的测试)是在一帧后“更改文本”,通过一个非常简单的协同程序,以“yield return new WaitForEndOfFrame()”开始。
我仍在阅读和调查,如果有任何发现,我会在这里更新。

sqxo8psd

sqxo8psd2#

你有没有试过为screenText添加检查?试试这个

if (screenText != null)
        screenText.text = "Test 2";
    else
        Debug.Log ("NULL screenText");
inb24sb2

inb24sb23#

https://developers.google.com/admob/unity/quick-start?hl=ko
我找到答案了兄弟
RaiseAdEventsOnUnityMainThread = true;

相关问题