Unity Admob插件;当您尝试更改“TextMesh.text”时应用程序崩溃

时间:2018-06-01 22:57:51

标签: android unity3d admob

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.电话笔记5

这是一个问题吗?还是我必须修理一下?

(这是视频奖励时的日志文件:https://justpaste.it/7b1hn

2 个答案:

答案 0 :(得分:1)

为了将来参考,是的,它经常发生。这不是一个简单的缺失参考问题。

我也试过用一个图像创建一个画布:没有崩溃。 然后我尝试用 TextMeshPro 文本创建一个画布:崩溃!

我发现的最简单的解决方法(经过许多小时的测试)是在一帧之后“更改文本”,通过一个以“yield return new WaitForEndOfFrame()”开头的非常简单的协程。

我仍在阅读和调查中,如果有发现会在这里更新。

答案 1 :(得分:0)

您是否尝试过为screenText添加检查?试试这个。

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