This commit is contained in:
manhduyhoang90
2026-05-26 09:46:57 +07:00
commit 167a617e09
1758 changed files with 1757605 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
using System.Collections.Generic;
using Unity.FPS.Game;
using UnityEngine;
namespace Unity.FPS.UI
{
public class DisplayMessageManager : MonoBehaviour
{
public UITable DisplayMessageRect;
public NotificationToast MessagePrefab;
List<(float timestamp, float delay, string message, NotificationToast notification)> m_PendingMessages;
void Awake()
{
EventManager.AddListener<DisplayMessageEvent>(OnDisplayMessageEvent);
m_PendingMessages = new List<(float, float, string, NotificationToast)>();
}
void OnDisplayMessageEvent(DisplayMessageEvent evt)
{
NotificationToast notification = Instantiate(MessagePrefab, DisplayMessageRect.transform).GetComponent<NotificationToast>();
m_PendingMessages.Add((Time.time, evt.DelayBeforeDisplay, evt.Message, notification));
}
void Update()
{
foreach (var message in m_PendingMessages)
{
if (Time.time - message.timestamp > message.delay)
{
message.Item4.Initialize(message.message);
DisplayMessage(message.notification);
}
}
// Clear deprecated messages
m_PendingMessages.RemoveAll(x => x.notification.Initialized);
}
void DisplayMessage(NotificationToast notification)
{
DisplayMessageRect.UpdateTable(notification.gameObject);
//StartCoroutine(MessagePrefab.ReturnWithDelay(notification.gameObject, notification.TotalRunTime));
}
void OnDestroy()
{
EventManager.RemoveListener<DisplayMessageEvent>(OnDisplayMessageEvent);
}
}
}