MayHeCome/Assets/Scripts/GameOverManager.cs
2024-12-18 17:55:34 +08:00

62 lines
1.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}