所以我昨晚升级到Unity 5.3.2,现在我无法将UI Text对象拖到检查器中的脚本中。 (下图)
除运行时外,没有编译器错误。我每次都会收到此错误:
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");
}
答案 0 :(得分:1)
当您在Inspector中查看脚本时(通过在Assets文件夹中单击它),您可以设置该脚本的默认对象。这些对象只能来自您的Sssets - 它不允许您从特定场景中拖动对象。您只能将场景中的对象拖动到该场景中的脚本实例(例如,附加到某个GameObject的Scoring脚本)。
尝试创建一个GameObject,将Scoring脚本附加到它上,在检查器中选择 GameObject ,然后将UIText元素拖到附加到该GameObject的脚本实例上。
答案 1 :(得分:0)
将这些文本对象拖放到您的项目中,使其预制。然后,您可以分配它们。