Unity 5.3.2 - 无法在检查器中使用UI Text对象

时间:2016-02-06 17:10:58

标签: javascript unityscript unity3d-2dtools

所以我昨晚升级到Unity 5.3.2,现在我无法将UI Text对象拖到检查器中的脚本中。 (下图)

enter image description here

enter image description here

除运行时外,没有编译器错误。我每次都会收到此错误:

NullReferenceException: Object reference not set to an instance of an object Scoring.updateScores () (at Assets/Scripts/Scoring.js:21)

我有以下的javascript代码。评论是我尝试过的。请询问并需要澄清。

#pragma strict

var score : int;
//var scoreScore : GameObject;
//var highScore : GameObject;
var scoreScore : UnityEngine.UI.Text;
var highScore : UnityEngine.UI.Text;

function Start () {
    //scoreScore = GameObject.Find("scoreScore").GetComponent.<UnityEngine.UI.Text>();
    //highScore = GameObject.Find("highScore").GetComponent.<UnityEngine.UI.Text>();
    score = 0;
    updateScores();
}

function updateScores() {
    if (score >= PlayerPrefs.GetInt("highScore")) {
        PlayerPrefs.SetInt("highScore", score);
    }

    scoreScore.text = "" + score.ToString();
    highScore.text = "" + PlayerPrefs.GetInt("highScore");
}

2 个答案:

答案 0 :(得分:1)

当您在Inspector中查看脚本时(通过在Assets文件夹中单击它),您可以设置该脚本的默认对象。这些对象只能来自您的Sssets - 它不允许您从特定场景中拖动对象。您只能将场景中的对象拖动到该场景中的脚本实例(例如,附加到某个GameObject的Scoring脚本)。

尝试创建一个GameObject,将Scoring脚本附加到它上,在检查器中选择 GameObject ,然后将UIText元素拖到附加到该GameObject的脚本实例上。

答案 1 :(得分:0)

将这些文本对象拖放到您的项目中,使其预制。然后,您可以分配它们。