我正在构建一个第一人称VR射击游戏和负责CountDown的脚本,并显示Canvas,其中Play Again Button出现不播放..
这是游戏的屏幕和更好理解的脚本:
`
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 :(得分: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,它工作正常。