wirm/Game/Assets/Scripts/CanvasFade.cs

51 lines
No EOL
1.2 KiB
C#

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