示例#1
0
        public IEnumerator ShowConfirmPanel(string content, string cancelText, Action cancelAction, string okText, Action okAction, bool cancelClose = true, bool okClose = true)
        {
            m_ConfirmPanel.SetActive(false);
            m_ConfirmResult = ConfirmResultType.None;

            bool hasCancelBtn = true;

            if (string.IsNullOrEmpty(cancelText) || cancelAction == null)
            {
                hasCancelBtn = false;
                m_CancelButton.gameObject.SetActive(false);
            }
            else
            {
                m_CancelButton.gameObject.SetActive(true);
            }

            bool hasOkBtn = true;

            if (string.IsNullOrEmpty(okText) || okAction == null)
            {
                hasOkBtn = false;
                m_OkButton.gameObject.SetActive(false);
            }
            else
            {
                m_OkButton.gameObject.SetActive(true);
            }

            if (hasCancelBtn && hasOkBtn)
            {
                m_CancelButton.transform.localPosition = new Vector3(-128.7f, -116.9f, 0);
                m_OkButton.transform.localPosition     = new Vector3(128.7f, -116.9f, 0);
            }
            else
            {
                m_CancelButton.transform.localPosition = new Vector3(0, -116.9f, 0);
                m_OkButton.transform.localPosition     = new Vector3(0, -116.9f, 0);
            }

            m_CancelButtonText.text    = cancelText;
            m_OkButtonText.text        = okText;
            m_ConfirmPanelContent.text = content == null ? "" : content;
            m_CancelButton.onClick.RemoveAllListeners();
            m_OkButton.onClick.RemoveAllListeners();

            m_CancelButton.onClick.AddListener(() =>
            {
                if (cancelAction != null)
                {
                    cancelAction();
                }

                if (cancelClose)
                {
                    m_ConfirmResult = ConfirmResultType.Cancel;
                    m_ConfirmPanel.SetActive(false);
                }
            });
            m_OkButton.onClick.AddListener(() =>
            {
                if (okAction != null)
                {
                    okAction();
                }

                if (okClose)
                {
                    m_ConfirmResult = ConfirmResultType.Ok;
                    m_ConfirmPanel.SetActive(false);
                }
            });
            m_ConfirmPanel.SetActive(true);

            while (m_ConfirmResult == ConfirmResultType.None)
            {
                yield return(null);
            }
        }
示例#2
0
        public IEnumerator ShowConfirmPanel(string content, string cancelText, Action cancelAction, string okText,
                                            Action okAction)
        {
            m_ConfirmResult = ConfirmResultType.None;

            bool hasCancelBtn = true;

            if (string.IsNullOrEmpty(cancelText) || cancelAction == null)
            {
                hasCancelBtn = false;
                m_CancelButton.gameObject.SetActive(false);
            }
            else
            {
                m_CancelButton.gameObject.SetActive(true);
            }

            bool hasOkBtn = true;

            if (string.IsNullOrEmpty(okText) || okAction == null)
            {
                hasOkBtn = false;
                m_OkButton.gameObject.SetActive(false);
            }
            else
            {
                m_OkButton.gameObject.SetActive(true);
            }

            if (hasCancelBtn && hasOkBtn)
            {
                m_CancelButton.transform.localPosition = new Vector3(-124.2f, -100.9781f, 0);
                m_OkButton.transform.localPosition     = new Vector3(124.2f, -100.9781f, 0);
            }
            else
            {
                m_CancelButton.transform.localPosition = new Vector3(0, -100.9781f, 0);
                m_OkButton.transform.localPosition     = new Vector3(0, -100.9781f, 0);
            }

            m_CancelButtonText.text    = cancelText;
            m_OkButtonText.text        = okText;
            m_ConfirmPanelContent.text = content == null ? "" : content;

            m_CancelButton.onClick.Clear();
            m_OkButton.onClick.Clear();

            SetCallback("CancelButton", () =>
            {
                if (cancelAction != null)
                {
                    cancelAction();
                }
                m_ConfirmResult = ConfirmResultType.Cancel;
                m_ConfirmPanel.SetActive(false);
            });

            SetCallback("OkButton", () =>
            {
                if (okAction != null)
                {
                    okAction();
                }
                m_ConfirmResult = ConfirmResultType.Ok;
                m_ConfirmPanel.SetActive(false);
            });
            m_ConfirmPanel.SetActive(true);

            while (m_ConfirmResult == ConfirmResultType.None)
            {
                yield return(null);
            }
        }