using System.Collections; using Tag; using UnityEngine; [RequireComponent(typeof(SceneStatus))] public class GameProgressManager : MonoBehaviour { public int time = 60; public MaskAnswers player1; public MaskAnswers player2; public int questionMaxScore; public int player1Score; public int player2Score; public QuestionPlayer questionPlayer; public SceneStatus sceneStatus; private void Awake() { sceneStatus = GetComponent(); } public void Refresh() { if (player1.bindPlayer != null && player2.bindPlayer != null && SceneStatus.Instance.current == Status.Waiting) { // 开始游戏 sceneStatus.current = Status.Playing; OnGameStart(); } } private void OnGameStart() { Debug.Log("开始游戏!"); player1.bindPlayer.GetComponent().enabled = true; player2.bindPlayer.GetComponent().enabled = true; // 记录最大分数 questionMaxScore = questionPlayer.currentQuestion.Need.Count; StartCoroutine(GameTime()); } private void OnGameEnd() { Debug.Log("游戏结束!"); } IEnumerator GameTime() { while (true) { yield return new WaitForSeconds(0.2f); UpdateScore(); yield return new WaitForSeconds(0.4f); UpdateScore(); yield return new WaitForSeconds(0.2f); time--; if (time <= 0) break; } OnGameEnd(); } private void UpdateScore() { player1Score = QuestionVerifier.Verify(questionPlayer.currentQuestion, player1.CollectToAnswer()); player2Score = QuestionVerifier.Verify(questionPlayer.currentQuestion, player2.CollectToAnswer()); } }