57 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|