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