2015-07-05 4 views
0

У меня в настоящее время проблема с Gui Text в единстве 5. То, что я пытаюсь получить, - это оценка, которая появляется на экране. Система подсчета очков работает, так как у меня есть выход Debug.Log, который говорит мне, что он работает, однако текст Gui не появляется, но если я просто введу его в текстовое поле.Gui Текст вопроса не отображается

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

Если это не опечатка, то есть строка кода, который имеет два знака равенства:

myText.text = "Score: " = myScore.ToString(); 

Что я предполагаю, что вы пытаетесь сделать, это есть это говорит Оценка: а затем дисплей счет. Для этого просто измените второй равный плюс.

myText.text = "Score: " + myScore.ToString(); 

Кроме того, только один полезный намек, на строке кода, который говорит myScore = myScore + 1;, вы можете просто сделать myScore++;, и если вы хотите добавить больше, чем один на somepoint вы можете сказать myScore += amountToAdd. += означает, что вы хотите, чтобы он был равен самому себе, плюс другая сторона уравнения, ++ просто означает добавить 1 к нему.

Edit: Ответ на комментарий
NullReferenceExceptions возникает при попытке присвоить значение переменной, которая является ООН, назначенный в системе. И, как видно выше, в вашем коде вы объявляете переменную public GUIText myText, а затем позже пытаетесь изменить текст этого объекта, однако нигде в коде вы не говорите, что равно myText. Поэтому, когда вы вызываете myText.text, он пытается установить текст несуществующей (нулевой) переменной. Чтобы исправить это, в Unity после того, как вы вышли из кода, в инспекторе вы сможете увидеть код, прикрепленный к вашему объекту. В этом компоненте скрипта вы увидите переменную myText, перетащите GameObject с компонентом GUIText из вашей иерархии в этот слот.

My image...

+0

Ах да, это была опечатка, я думал, что обновил код, но, очевидно, нет. Код работает, но ничего не отображается. В консоли было указано, что исключение ссылки не указано, переменная mytext оценки не назначена. И я действительно понятия не имею, что они подразумевают под этим. Есть идеи ? – 8673589

+0

Сказочные. Я добавил объект игры, который использовал скрипт для текста в инспекторе, и теперь он отлично работает. Я не понял, что мне нужно было применить его вручную к тому же скрипту на других объектах, но это не было проблемой. Благодарю. – 8673589

+0

Отлично! однако imma загружать плохое изображение я сделал anyways lol –

Смежные вопросы