2017-02-15 3 views
0
で正しく再生されないもう一度ボタンが表示されますを再生するどの私は最初の人VRシューティングゲーム、カウントダウンを担当するスクリプトを構築し、キャンバスを表示しています

を果たしていないため。..スクリプトカウントダウンタイマーを設定し、キャンバスはユニティ

ここではゲームプレイの画面やよりよい理解のためのスクリプトは次のとおりです。

GamePlay

` 

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.SceneManagement; 
using UnityEngine.UI; 

public class playGameAgainScript : MonoBehaviour { 

    //Use this for Timer 
    public Text countDown; 
    private float timer = 60; 

    //Declare Button 
    public Button playAgainButton; 

    void Start() { 
     //Set countDown value 
     countDown = GetComponent<Text>(); 
    } 

    void Update() { 
     timer -= Time.deltaTime; 
     countDown.text = "" + timer.ToString ("f0"); 
     if (timer <= 0) { 
      timer = 0; 
      playAgainButton.gameObject.SetActive (true); 
     } 
    } 

    public void PlayAgain() { 
     UnityEngine.SceneManagement.SceneManager.LoadScene ("Main Scene"); 
    } 
} 

`

+0

なぜボタンコンポーネントとEventTriggerがあるのですか?あなたのキャンバスにはGraphicsRaycasterがありますか? –

+0

私はPointerEnter機能が必要なので、はい、キャンバスにはGraphicsRaycasterがあります。 –

答えて

0

問題は、playGameAgainButtonがデフォルトとして無効に設定されていたため、エディタでは何も検索対象がありませんでした。 このスクリプトの機能を別の場所に移動すると、問題を解決しました。メインのplayerScriptとそれはうまく動作します。

0

私はあなたが少しを提供するコードを編集し、それはあなたがタイマー= 0にするとき、あなたのコード内でタイマー= 0 <の状態が常に有効であることを

private bool counting=true, 
void Update() { 
if(counting){ 
     timer -= Time.deltaTime; 
     countDown.text = "" + timer.ToString ("f0"); 
     if (timer <= 0f) { 
      counting=false; 
      playAgainButton.gameObject.SetActive(true); 
     } 
} 
} 

通知を動作することを願っています。 これで、条件に1回だけ入力され、動作するはずです。

+0

チップをありがとうございますが、それは問題ではありません。私はあなたがそこで何をしたかを取得しますが、コードは正常に動作しているようです... Unityはエラーをスローしませんが、countDown(赤で60)は起動しません.. –

+0

OK、countDown = GetComponentを削除してみてください();スタート機能から手動で割り当てます。 –

+0

手動で割り当てるにはどうすればいいですか? –

関連する問題