예제 #1
0
        public virtual IScreen Popup(PopupInfo popupInfo)
        {
            var popup = (Popup)SpawnScreen(m_popupPrefab);

            popup.Show(popupInfo);
            return(popup);
        }
예제 #2
0
        public IScreen ConfirmationPopup(PopupInfo args)
        {
            var popup = (Popup)SpawnScreen(m_confirmationPopupPrefab);

            popup.Show(args);
            return(popup);
        }
예제 #3
0
        public void Show(PopupInfo popupInfo, Action closed = null)
        {
            gameObject.SetActive(true);
            m_closed = closed;

            Blocked = popupInfo.Blocked;
            Persist = popupInfo.Persist;

            if (!string.IsNullOrEmpty(popupInfo.Title))
            {
                m_title.text = popupInfo.Title;
            }
            else
            {
                m_title.text = "";
            }
            if (!string.IsNullOrEmpty((string)popupInfo.Content))
            {
                m_text.text = (string)popupInfo.Content;
            }
            else
            {
                m_text.text = "";
            }
            if (popupInfo.Preview != null)
            {
                m_icon.sprite = popupInfo.Preview;
                m_icon.transform.parent.gameObject.SetActive(true);
            }
            else
            {
                m_icon.transform.parent.gameObject.SetActive(false);
            }
            if (m_okButton != null)
            {
                m_okButton.onClick.AddListener(() => m_globalUI.CloseLastScreen());
            }
            if (m_closeButton != null)
            {
                m_closeButton.onClick.AddListener(() => m_globalUI.CloseLastScreen());
            }
        }
예제 #4
0
        public void Popup(PopupInfo popupInfo)
        {
            if (m_screenStack.Count > 0)
            {
                var screen = m_screenStack.Peek();
                if (screen.Persist)
                {
                    screen.Deactivate();
                }
                else
                {
                    m_screenStack.Pop().Close();
                }
            }

            m_uiBlocker.SetActive(popupInfo.Blocked);
            var popup = Instantiate(m_popupPrefab, m_screensRoot);

            popup.Show(popupInfo, null);
            m_screenStack.Push(popup);
        }
예제 #5
0
        public void Show(PopupInfo popupInfo)
        {
            m_info        = popupInfo;
            m_onPopupClck = popupInfo.Action;
            gameObject.SetActive(true);
            m_action = popupInfo.Action;

            Blocked = popupInfo.Block;
            Persist = popupInfo.Persist;

            if (m_title != null && !string.IsNullOrEmpty(popupInfo.Title))
            {
                m_title.text = popupInfo.Title;
            }
            else if (m_title != null)
            {
                m_title.text = "";
            }

            if (!string.IsNullOrEmpty((string)popupInfo.Content))
            {
                m_text.text = (string)popupInfo.Content;
            }
            else
            {
                m_text.text = "";
            }
            if (popupInfo.Preview != null)
            {
                m_icon.sprite = popupInfo.Preview;
                m_icon.transform.parent.gameObject.SetActive(true);
            }
            else if (m_icon != null)
            {
                m_icon.transform.parent.gameObject.SetActive(false);
            }
            if (m_okButton != null)
            {
                m_okButton.onClick.AddListener(() =>
                {
                    m_selectedAction = PopupInfo.PopupAction.ACCEPT;
                    m_uiEngine.CloseLastScreen();
                });
            }
            if (m_closeButton != null)
            {
                m_closeButton.onClick.AddListener(() =>
                {
                    m_selectedAction = PopupInfo.PopupAction.CANCEL;
                    m_uiEngine.CloseLastScreen();
                });
            }
            if (m_info.TimeInSeconds.HasValue)
            {
                Observable.Timer(new TimeSpan(0, 0, m_info.TimeInSeconds.Value)).Subscribe(_ =>
                {
                    if (this != null && this.gameObject != null)
                    {
                        m_uiEngine.CloseLastScreen();
                    }
                });
            }
        }
예제 #6
0
 public void ConfirmationPopup(PopupInfo args)
 {
     m_standaloneInterface.ConfirmationPopup(args);
     m_vrInterface?.ConfirmationPopup(args);
 }
예제 #7
0
 public void Popup(PopupInfo popupInfo)
 {
     m_standaloneInterface.Popup(popupInfo);
     m_vrInterface?.Popup(popupInfo);
 }