using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using UnityEngine.Video; public class Game02 : MonoBehaviour { public GameObject rocket; // 火箭 public GameObject[] fires; // 成功发射的点火特效 public GameObject fog; // 失败时的冒烟特效 public GameObject panel; public VideoPlayer player; public GameObject StatusBar; public GameObject button; public GameObject next; private bool fired = false; // 是否点火成功 public float pretime = 3f; // 准备时间 private float timestamp = 0f; // 冷却时间 public float wait = 1f; // 等待时间 public float time = 10f; // 倒计时 public int flag = 0; // 标记 private bool passed = false; private bool success = false; public int count = 0; public int maxCount = 100; // Start is called before the first frame update void Start() { timestamp = time; StatusBar.GetComponent().minValue = count; StatusBar.GetComponent().maxValue = maxCount; } // Update is called once per frame void Update() { GameLogic(); // 火箭升空 if (fired) { rocket.transform.Translate(rocket.transform.up * 0.5f); if (!success) { Camera.main.transform.Translate(Camera.main.transform.up * 0.5f); } Invoke("Video", 10f); } } void GameLogic() { if (fired) return; timestamp -= Time.deltaTime; button.GetComponentInChildren().text = timestamp.ToString("0"); if (timestamp < 0f) { if (count > maxCount) { Success(); } else { Failed(); } } } public void Video() { next.SetActive(true); success = true; player.Play(); } public void Add() { count++; StatusBar.GetComponent().value = count; StatusBar.GetComponentInChildren().text = count.ToString(); } void Success() { foreach (GameObject f in fires) { f.SetActive(true); } button.SetActive(false); fired = true; } void Failed() { panel.SetActive(true); panel.GetComponentInChildren().text = "发射失败"; fog.SetActive(true); } public void Restart() { SceneManager.LoadScene(2); } public void Next() { SceneManager.LoadScene(3); } }