2016-12-01 13 views
0

Ich entwerfe ein Spiel für mein Projekt und irgendwie wird die Partitur (Text) nach einer Aktion nicht aktualisiert. Es steckte bei 0.Text wird nicht aktualisiert in Unity C#

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class uiManager : MonoBehaviour { 

public Text scoreText; 
bool gameOver; 
int score; 

// Use this for initialization 
void Start() { 
    gameOver = false; 
    score = 0; 
    InvokeRepeating ("scoreUpdate", 1.0f, 0.5f); 
} 

// Update is called once per frame 
void Update() 
{ 
    scoreText.text = "Point: " + score; 
} 

void scoreUpdate() 
{ 
    if (gameOver == false) 
    { 
     score += 1; 
    } 
} 

public void gameOVER() 
{ 
    gameOver = true; 
} 

public void Play() 
{ 
    Application.LoadLevel ("MuachiJump"); 
} 

void OnCollisionEnter2D(Collision2D col) 
{ 
    if (col.gameObject.tag == "branch") 
    { 
     score += 1; 
     Destroy(col.gameObject); 
    } 
} 

Ich möchte nur sicherstellen, gibt es einen Fehler in diesem Code? Alle scheinen richtig zu sein.

+0

Seitliche Notiz, Sie sollten nicht Ihre Punktzahl in das Update drucken, wie Sie sind. Es erzeugt eine neue Zeichenkette und verwirft die vorherige Zeichenkette. Verwenden Sie stattdessen eine Eigenschaft für Ihr Bewertungselement, mit der auch der Text aktualisiert wird. Auf diese Weise wird nur eine neue Zeichenfolge erstellt, wenn Sie den Wert ändern. – Everts

Antwort

3

Der Code an sich scheint in Ordnung zu sein. Stellen Sie sicher, dass uiManager an ein Objekt in Ihrer aktiven Szene angehängt ist. Wenn Sie in der Methode Update beispielsweise Debug.Log(score) hinzufügen, sollte jedes Bild in das Protokoll gedruckt werden. Wenn dies nicht geschieht, müssen Sie das Skript an ein Objekt in Ihrer Szene anhängen und sicherstellen, dass das Text-Objekt eine gültige Referenz hat.

0

Haben Sie ein aktives Objekt mit dem Skript in Ihrer Szene?

Verwandte Themen