javascript - 如何让我的文本在 Unity 中显示我的分数?

标签 javascript string text unity-game-engine unityscript

我正在编写一个游戏,我希望文本显示玩家的分数,该分数会随着时间的推移而增加。但是,它不起作用。为什么不起作用?

#pragma strict
import UnityEngine.UI;
var score = 0;
var highScore : int;
var text : Text;
function Start() {
    highScore = PlayerPrefs.GetInt("High Score");
    text = GetComponent(Text);
    text.text = score.ToString();
}
function Update() {
    score += Time.deltaTime;
    if (score >= highScore) {
        highScore = score;
        PlayerPrefs.SetInt("High Score", highScore);
    }
    text.text = score.ToString();
}

我不断收到错误:

NullReferenceException:未将对象引用设置为对象的实例 Timer 和 Scoreboard.Update () (位于 Assets/Scripts/Timer 和 Scoreboard.js:17)

enter image description here enter image description here

最佳答案

我可以看到您已经将名为 Score 的 Text 组件分配给编辑器中的 text 插槽,但是当您执行 text = GetComponent 时您覆盖了该组件(Text); 在您的 Start 函数中。只需删除 text = GetComponent(Text);,您的代码就应该可以工作。

如果您想知道为什么 text = GetComponent(Text); 返回 null,那是因为没有 Text 组件附加到同一个 GameObject(Main Camera) ) 脚本已附加到。 text = GameObject.Find("In-Game UI/Score").GetComponent(Text); 应该可以正常工作。您不必执行此操作,因为您已经从编辑器分配了文本

关于javascript - 如何让我的文本在 Unity 中显示我的分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37174391/

相关文章:

regex - R-从列中删除逗号后的所有内容

text - 用负值归一化向量

javascript - 传入未定义的目的是什么?

javascript - 如何使用正则表达式解析OData参数?

c++ - 如何查找字符串数组中的元素数量(字符串传递给函数)

c - 段错误 - C 编程

java - 在 Java 中获取双字母组和三字母组的最简单方法或最轻量级的库?

python - 如何从txt文件中删除奇怪的编码

javascript - 在 JQuery 中使用 fadeToggle() 修复淡入淡出的文本

javascript - 使用 onkeypress 更改类别