wirm/Game/Assets/Scripts/CanvasFade.cs

51 lines
1.2 KiB
C#
Raw Normal View History

/*
2025-02-14 22:10:17 +08:00
* Author: Wai Lam
* Date: 13/2/2025
* Description: Counting days
*/
2025-02-14 22:10:17 +08:00
using System;
using System.Collections;
2025-02-13 15:11:41 +08:00
using TMPro;
2025-02-14 22:10:17 +08:00
using UnityEngine;
public class CanvasFade : MonoBehaviour
{
2025-02-13 15:11:41 +08:00
public CanvasGroup dayPanel; // Assign the UI Panel
public TextMeshProUGUI dayText; // Assign the TextMeshPro UI
2025-02-14 22:10:17 +08:00
2025-02-13 15:11:41 +08:00
private void Start()
{
2025-02-13 15:11:41 +08:00
if (GameManager.Instance != null)
{
2025-02-14 22:10:17 +08:00
var dayNumber = GameManager.Instance.currentDay;
2025-02-13 15:11:41 +08:00
dayText.text = "Day " + dayNumber;
}
2025-02-13 15:11:41 +08:00
StartCoroutine(FadeOutPanel());
}
2025-02-14 22:10:17 +08:00
public static event Action OnDayPanelHidden;
2025-02-13 15:11:41 +08:00
private IEnumerator FadeOutPanel()
{
2025-02-13 15:11:41 +08:00
dayPanel.alpha = 1f;
dayPanel.gameObject.SetActive(true);
2025-02-11 15:31:52 +08:00
2025-02-13 15:11:41 +08:00
yield return new WaitForSeconds(3f); // Display for 3 seconds
2025-02-11 15:31:52 +08:00
2025-02-14 22:10:17 +08:00
const float fadeDuration = 1.5f;
var elapsedTime = 0f;
2025-02-11 15:31:52 +08:00
2025-02-13 15:11:41 +08:00
while (elapsedTime < fadeDuration)
{
elapsedTime += Time.deltaTime;
dayPanel.alpha = Mathf.Lerp(1f, 0f, elapsedTime / fadeDuration);
yield return null;
}
2025-02-13 15:11:41 +08:00
dayPanel.gameObject.SetActive(false);
2025-02-11 15:31:52 +08:00
2025-02-14 22:10:17 +08:00
OnDayPanelHidden?.Invoke();
}
2025-02-14 22:10:17 +08:00
}