我目前在团结中遇到Gui Text的问题5.我想要得到的是得分出现在屏幕上。评分系统有效,因为我有一个Debug.Log输出告诉我它有效,但Gui Text没有显示,但是如果我只是在文本框中输入它。
using UnityEngine;
using System.Collections;
public class Score : MonoBehaviour {
public static int myScore;
public bool allowScore = false;
public GUIText myText;
//only allows score to start when first object has passed player object
void OnTriggerEnter2D(Collider2D collisionObject) {
allowScore = true;
}
//add 1 to score every switch
void Update () {
if (Input.GetMouseButtonDown (0) && allowScore == true) {
myScore = myScore + 1;
Debug.Log ("My score is " + myScore + " point(s)");
}
//GUI text for screen
myText.text = "Score: " + myScore.ToString();
}
}
答案 0 :(得分:0)
除非这是一个拼写错误,否则你有一行代码有两个相同的符号:
myText.text = "Score: " = myScore.ToString();
我猜你要做的就是让它说得分:然后显示得分。要做到这一点,只需将第二个更改为加号。
myText.text = "Score: " + myScore.ToString();
同样只是一个有用的提示,在代码行myScore = myScore + 1;
上,您只需myScore++;
,如果您希望在某个点添加多个,可以说{{1} }。 myScore += amountToAdd
表示您希望它等于自身加上等式的另一侧,+=
只是意味着为它添加1。
编辑:回复评论
当您尝试将值分配给系统中未分配的变量时,会发生NullReferenceExceptions。如上所述,在您的代码中,您声明了变量++
,然后您尝试更改此对象文本,但是,您的代码中没有任何地方说明public GUIText myText
等于什么。因此,当您调用myText
时,它会尝试设置不存在的(null)变量的文本。要解决此问题,在Unity中退出代码后,在检查器中,您将能够看到附加到对象的代码。在该脚本组件中,您将看到变量myText.text
,将带有GUIText组件的GameObject从您的层次结构拖到该插槽中。