/// <summary> /// Initializes the Notification with the data, and sets the initial animation settings. /// </summary> /// <param name="data"> New Notification Data to set</param> /// <param name="timeNotificationCreated"> Time at which the notification was created, controls when transitions happen. </param> public void InitGameNotification(GameNotificationData data, float timeNotificationCreated) { iconImage.sprite = data.iconSprite; Color imageColor = iconImage.color; // Set image alpha to 0 if no sprite. if (iconImage.sprite) { imageColor.a = 1.0f; } else { imageColor.a = 0.0f; } iconImage.color = imageColor; title.text = data.notificationTitle; notificationGroup.alpha = 1.0f; timeCreated_ = timeNotificationCreated; isActive_ = true; isMovingUp_ = false; transform.position = initialPosition_; }
private void Update() { float currentTime = Time.time; for (int i = 0; i < maxNotifications; i++) { if (notifications[i].IsActive()) { notifications[i].UpdateState(currentTime); } else { if (!notifications[currentNotification_].IsMovingUp()) { if (notificationBackLog_.Count > 0) { GameNotificationData notificationData = notificationBackLog_.Dequeue(); notifications[i].InitGameNotification(notificationData, currentTime); currentNotification_ = i; MoveAllNotificationsUp(currentTime); } } } } }
/// <summary> /// Called to send a notification to the GameNotification UI. /// </summary> public static void SendGameNotification(GameNotificationData data) { // notify all listeners to event. if (OnRecieveGameNotification != null) { OnRecieveGameNotification(data); } }
/// <summary> /// Store Game Notification Data so can be processed when NotificationUi is ready. /// </summary> /// <param name="data"> New notification Data to display. </param> private void ProcessGameNotification(GameNotificationData data) { notificationBackLog_.Enqueue(data); }