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

Script for setting CountDown timer and Canvas does not play properly in Unity

我正在构建一个第一人称 VR 射击游戏,负责倒计时和显示 Canvas 的脚本无法播放,其中出现了 Play Again 按钮。

为了更好的理解,这里是游戏画面和脚本:

`

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

`

我对您提供的代码进行了一些编辑,希望它能正常工作

 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<=0 的条件始终有效; 现在它将只进入一次条件并且它应该工作。

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