Пример #1
0
        internal static void DisplayDialogInternal(string id, string text, ButtonOptions OkOptions = null, ButtonOptions NoOptions = null,
                                                   ButtonOptions CancelOptions = null, DialogType type             = DialogType.Info
                                                   , DialogButtons buttons     = DialogButtons.None, float TimeOut = 0f)
        {
            UDialogManager manager = Instance;

            if (manager.db.ContainsKey(id))
            {
                return;
            }

            UDialogMessage msg = Instantiate(manager.DialogWindowBase, manager.WindowsContainer.transform).
                                 GetComponent <UDialogMessage>();

            Sprite _icon = null;

            switch (type)
            {
            case DialogType.Error:
                _icon = manager.ErrorIcon;
                break;

            case DialogType.Info:
                _icon = manager.InfoIcon;
                break;

            case DialogType.Loading:
                _icon = manager.LoadingIcon;
                break;

            case DialogType.Warning:
                _icon = manager.WarningIcon;
                break;
            }

            msg.Init(id, _icon, type == DialogType.Loading, buttons, text, OkOptions, NoOptions, CancelOptions, TimeOut);

            manager.db.Add(id, msg);

            manager.Background.gameObject.SetActive(true);
        }
Пример #2
0
        public void Init(string id, Sprite Icon, bool animate, DialogButtons buttons, string text, ButtonOptions OkOptions,
                         ButtonOptions NoOptions, ButtonOptions CancelOptions, float timeout)
        {
            Id = id;

            DisplayText.text = text;

            DisplayIcon.gameObject.SetActive(Icon != null);

            DisplayIcon.transform.rotation = Quaternion.identity;

            DisplayIcon.sprite = Icon;

            if (animate)
            {
                StartCoroutine(I_RotateIcon());
            }

            if (timeout > 0f)
            {
                StartCoroutine(I_AutoHide(timeout));
            }

            if (buttons == DialogButtons.None)
            {
                ActivateButton(OkButton, false);
                ActivateButton(NoButton, false);
                ActivateButton(CancelButton, false);
                ButtonContainer.SetActive(false);
                return;
            }

            ButtonContainer.SetActive(true);

            if (buttons == DialogButtons.Ok || buttons == DialogButtons.YesNo)
            {
                OkButton.onClick.AddListener(() =>
                {
                    if (OkOptions != null && OkOptions.action != null)
                    {
                        OkOptions.action.Invoke(this);
                    }

                    OkButtonClick.Invoke();
                });

                if (OkOptions != null)
                {
                    UpdateText(OkButton, OkOptions.displayText);
                }
                else
                {
                    UpdateText(NoButton, DefaultOkText);
                }

                ActivateButton(OkButton, true);
            }
            else
            {
                ActivateButton(OkButton, false);
            }

            if (buttons == DialogButtons.YesNo || buttons == DialogButtons.YesNoCancel)
            {
                NoButton.onClick.AddListener(() =>
                {
                    if (NoOptions != null && NoOptions.action != null)
                    {
                        NoOptions.action.Invoke(this);
                    }

                    NoButtonClick.Invoke();
                });

                if (NoOptions != null)
                {
                    UpdateText(NoButton, NoOptions.displayText);
                }
                else
                {
                    UpdateText(NoButton, DefaultNoText);
                }

                ActivateButton(NoButton, true);
            }
            else
            {
                ActivateButton(NoButton, false);
            }

            if (buttons == DialogButtons.YesNoCancel)
            {
                CancelButton.onClick.AddListener(() =>
                {
                    if (CancelOptions != null && CancelOptions.action != null)
                    {
                        CancelOptions.action.Invoke(this);
                    }

                    CancelButtonClick.Invoke();
                });

                if (CancelOptions != null)
                {
                    UpdateText(CancelButton, CancelOptions.displayText);
                }
                else
                {
                    UpdateText(CancelButton, DefaultCancelText);
                }

                ActivateButton(CancelButton, true);
            }
            else
            {
                ActivateButton(CancelButton, false);
            }
        }
Пример #3
0
 public static void DisplayDialogWindow(string id, string text, DialogType type, DialogButtons buttons, float timeout, ButtonOptions OkOptions = null
                                        , ButtonOptions NoOptions = null, ButtonOptions CancelOptions = null)
 {
     DisplayDialogInternal(id, text, OkOptions, NoOptions, CancelOptions, type, buttons, timeout);
 }