49 lines
1.1 KiB
C#
49 lines
1.1 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using TMPro;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
/// 倒计时器
|
|
/// </summary>
|
|
public class CountdownTimer : MonoBehaviour
|
|
{
|
|
public Image countdownImage;
|
|
public TMP_Text countdownText;
|
|
public int countdownTime = 10;
|
|
public int numberFontSize = 100;
|
|
public int suffixFontSize = 30;
|
|
private void OnEnable()
|
|
{
|
|
StartCountdown().Forget();
|
|
}
|
|
|
|
private async UniTaskVoid StartCountdown()
|
|
{
|
|
int i = countdownTime;
|
|
for (; i >= 0; i--)
|
|
{
|
|
countdownText.text = $"<size={numberFontSize}>{i}</size><size={suffixFontSize}>s</size>";
|
|
countdownImage.fillAmount = (float)i / countdownTime;
|
|
|
|
await UniTask.Delay(1000);
|
|
}
|
|
|
|
countdownText.text = $"<size={numberFontSize}>0</size><size={suffixFontSize}>s</size>";
|
|
countdownImage.fillAmount = 0;
|
|
|
|
if (i <= 0)
|
|
{
|
|
//倒计时结束退出程序
|
|
Application.Quit();
|
|
}
|
|
}
|
|
|
|
// #if !UNITY_EDITOR
|
|
//
|
|
// #else
|
|
// Application.Quit();
|
|
// #endif
|
|
}
|