2015-07-05 60 views
0

我目前在統一的Gui文本中出現問題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。

編輯:迴應置評
NullReferenceException異常當您嘗試賦值給一個變量是未分配在系統發生。正如上面所看到的,在你的代碼中,你聲明變量public GUIText myText,然後你嘗試改變這個對象文本,然而,在你的代碼中沒有任何地方你說myText等於什麼。所以當你打電話給myText.text時,它試圖設置一個不存在的(空)變量的文本。要解決這個問題,在Unity中退出代碼後,在檢查器中,您將能夠看到附加到您的對象的代碼。在該腳本組件中,您將看到變量myText,將具有GUIText組件的GameObject拖放到該槽中。

My image...

+0

啊是的,這是一個錯字我認爲我已經更新了代碼,但顯然不是。代碼運行但沒有顯示。在控制檯中它表示unnassigned參考異常,分數的變量mytext尚未分配。我真的不知道他們這是什麼意思。有任何想法嗎 ? – 8673589

+0

很棒。我將使用腳本的遊戲對象添加到檢查器中的文本中,現在它完美地工作。我沒有意識到我需要手動將其應用於其他對象上的相同腳本,但這不是問題。謝謝。 – 8673589

+0

太棒了!然而imma上傳我反正造成的可憐的形象大聲笑 –