MayHeCome/Assets/Scripts/GameOverManager.cs

62 lines
1.6 KiB
C#
Raw Normal View History

2024-12-18 09:55:34 +00:00
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class GameOverManager : Singleton<GameOverManager>
{
public Image targetImage;
public TMP_Text te;
// 游戏是否结束的标志
private bool isGameOver = false;
private void Start()
{
targetImage = GetComponent<Image>();
te = GetComponentInChildren<TMP_Text>();
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;
}
}