using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class GameOverManager : Singleton { public Image targetImage; public TMP_Text te; // 游戏是否结束的标志 private bool isGameOver = false; private void Start() { targetImage = GetComponent(); te = GetComponentInChildren(); this.gameObject.SetActive(false); } public void WinGame() { gameObject.SetActive(true); StartCoroutine(FadeCoroutine("您赢了!太阳之神永远地降临在此!")); } public void LoseGame() { gameObject.SetActive(true); StartCoroutine(FadeCoroutine("您输了...\n黑暗无情的击破了你的城墙,太阳神将不再降临")); } private IEnumerator FadeCoroutine(string content) { // 获取当前颜色和目标颜色 Color originalColor = targetImage.color; Color targetColor = new Color(originalColor.r, originalColor.g, originalColor.b, 1); float timeElapsed = 0; while (timeElapsed < 4) { // 计算过渡的比例 float t = timeElapsed / 4; // 插值更新颜色 targetImage.color = Color.Lerp(originalColor, targetColor, t); timeElapsed += Time.deltaTime; yield return null; } // 确保最终颜色为目标颜色 targetImage.color = targetColor; te.gameObject.SetActive(true); te.text = content; } }