2016-12-01 41 views
0

私は自分のプロジェクト用のゲームをデザインしていますが、何らかの理由で処理後にスコア(テキスト)が更新されません。それは0で立ち往生しました。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); 
    } 
} 

このコードには間違いがありませんか?それらのすべては正しいと思われる。

+0

サイドノートでは、そのままアップデートにスコアを印刷しないでください。新しい文字列を作成し、各フレームの前の文字列を破棄します。代わりに、あなたのスコアメンバのプロパティを使用してテキストを更新します。この方法では、値を変更すると新しい文字列が作成されます。 – Everts

答えて

3

コード自体は問題ありません。シーン内のアクティブなオブジェクトにuiManagerが接続されていることを確認してください。 Updateメソッドでは、たとえば、Debug.Log(score)を追加すると、フレームごとにログに出力されます。これが起こっていない場合は、シーン内のオブジェクトにスクリプトを添付し、Textオブジェクトに有効な参照があることを確認する必要があります。

0

あなたのシーンにスクリプトが添付されたアクティブなオブジェクトがありますか?

関連する問題