繁体   English   中英

如何解决文本对象上的空引用错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM