private void SendPanelNotice(string message, Color panelColor)
        {
            PanelNoticeStatus noticeStatus = new PanelNoticeStatus(this.avatarName, message, panelColor);

            // For changing the notice of the panel
            ExecuteEvents.Execute <IPanelNoticeHandler>
            (
                target: this.mainMenu,
                eventData: null,
                functor: (reciever, eventData) => reciever.OnPanelNoticeChange(noticeStatus)
            );
        }
        private void ShowNotice(PanelNoticeStatus panelNoticeStatus)
        {
            this.noticePanel.SetActive(true);

            int   fontSize = (panelNoticeStatus.Message.Length < 20)? 150 : 80;
            float duration = (panelNoticeStatus.Message.Length < 20)? 2f : 10f;

            this.speakerText.text  = panelNoticeStatus.Speaker;
            this.speakerText.color = panelNoticeStatus.Color;

            this.messageText.text     = panelNoticeStatus.Message;
            this.messageText.fontSize = fontSize;
            this.messageText.color    = panelNoticeStatus.Color;

            this.hideTime = UnityEngine.Time.time + duration;

            StartCoroutine(this.HideNotice());             // Hide
        }
 public void OnPanelNoticeChange(PanelNoticeStatus panelNoticeStatus)
 {
     this.ShowNotice(panelNoticeStatus);
 }
 public PanelNoticeStatus(PanelNoticeStatus panelNoticeStatus)
 {
     this.Speaker = panelNoticeStatus.Speaker;
     this.Message = panelNoticeStatus.Message;
     this.Color   = panelNoticeStatus.Color;
 }