2021년 4학년 1학기 기업연계프로젝트2 컴퓨터소프트웨어공학과 <원광투어팀> 팀장 : 송유진 팀원 : 김나영, 이경희, 한유진
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

52 lines
1.7 KiB

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);
}
}
}