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)
答案 0 :(得分:1)
为了将来参考,是的,它经常发生。这不是一个简单的缺失参考问题。
我也试过用一个图像创建一个画布:没有崩溃。 然后我尝试用 TextMeshPro 文本创建一个画布:崩溃!
我发现的最简单的解决方法(经过许多小时的测试)是在一帧之后“更改文本”,通过一个以“yield return new WaitForEndOfFrame()”开头的非常简单的协程。
我仍在阅读和调查中,如果有发现会在这里更新。
答案 1 :(得分:0)
您是否尝试过为screenText添加检查?试试这个。
if (screenText != null)
screenText.text = "Test 2";
else
Debug.Log ("NULL screenText");