用于设置CountDown计时器和Canvas的脚本在Unity中无法正常播放

时间:2017-02-15 13:53:46

标签: c# android unity3d virtual-reality google-vr

我正在构建一个第一人称VR射击游戏和负责CountDown的脚本,并显示Canvas,其中Play Again Button出现不播放..

这是游戏的屏幕和更好理解的脚本:

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");
    }
}

`

2 个答案:

答案 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);
        }
}
}

请注意,在你的代码中,当你使timer = 0时,timer&lt; = 0的条件总是有效; 现在它只会输入一次该条件,它应该可以工作。

答案 1 :(得分:0)

问题是playGameAgainButton默认设置为非活动状态,因此编辑器无需查找。 通过将功能从这个脚本移动到另一个地方,它解决了问题..我将它移动到主要的playerScript,它工作正常。