[英]How do I fix this null reference error on a text object?
对不起,新问题。
我试图使游戏结束后的面板显示玩家的最终得分,我复制了brackeys视频中的一些代码,但仍然无法正常工作。
我尝试将文本变量初始化为null,还尝试了一些其他语法。
这是在玩家玩游戏时显示分数的脚本。 这部分工作正常。
using UnityEngine;
using UnityEngine.UI;
public class Score : MonoBehaviour
{
private float timer;
public Text scoreText;
// Update is called once per frame
void Update()
{
timer += Time.deltaTime;
scoreText.text = timer.ToString("0.#");
}
}
该脚本旨在从第一个脚本中提取得分并将其显示在游戏面板上方的文本对象上。
using UnityEngine;
using UnityEngine.UI;
public class DisplayScore : MonoBehaviour
{
public Text finalScore;
void OnEnable()
{
finalScore.text = GetComponent<Score>().scoreText.text.ToString();
}
}
除此空引用错误外,游戏运行正常。 错误来自第二个脚本中的此行:
finalScore.text = GetComponent<Score>().scoreText.text.ToString();
由于在Unity中Text
构造函数受到保护,因此您必须访问在编辑器中创建的现有Text
对象。 像这样
finalScore = someGameObject.GetComponent<Text>();
finalScore.text = timer.ToString("0.#");
或使用.AddComponent<Text>
创建Text
对象,如下所示: Text.text
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.