fgm24/Assets/Scripts/UI/WaveUI.cs

57 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class WaveUI : MonoBehaviour
{
[SerializeField] private EnemySpawner spawner;
[SerializeField] private Slider slider;
[SerializeField] private TMP_Text waveText;
[SerializeField] private float waveTextDisplayTime = 3f;
private void Start()
{
waveText.color = new Color(1, 1, 1, 0);
}
int prevWave = 0;
private void Update()
{
float waveProgressTime = spawner.timer / spawner.WaveTime;
slider.value = waveProgressTime;
if (prevWave != spawner.Wave)
{
prevWave = spawner.Wave;
StartCoroutine(ShowWave());
}
}
IEnumerator ShowWave()
{
waveText.text = $"Wave: {spawner.Wave}";
Color color = new Color(1, 1, 1, 0);
while (color.a < 1)
{
color.a += 0.05f;
waveText.color = color;
yield return new WaitForSecondsRealtime(0.05f);
}
yield return new WaitForSecondsRealtime(waveTextDisplayTime);
color = new Color(1, 1, 1, 1);
while (color.a >= 0)
{
color.a -= 0.05f;
waveText.color = color;
yield return new WaitForSecondsRealtime(0.05f);
}
}
}