コード例 #1
0
ファイル: ZUIPanel.cs プロジェクト: dfengwji/unity
 public void Open(UIParamInfo info)
 {
     paramInfo = info;
     _isOpen   = true;
     AddListeners();
     Appear();
 }
コード例 #2
0
        public void ShowPanel(string uname, UIParamInfo info)
        {
            if (string.IsNullOrEmpty(uname))
            {
                return;
            }
            IZUIPanel panel = null;

            for (int i = 0; i < panels.Count; i++)
            {
                if (panels[i].definition == uname)
                {
                    panel = panels[i];
                    break;
                }
            }
            if (panel == null)
            {
                panel = CreatePanel(uname, panelParent);
                ActivePanel(panel, info);
            }
            else
            {
                if (panel.isOpen)
                {
                    RepeatOpenPanel(panel, info);
                }
                else
                {
                    ActivePanel(panel, info);
                }
            }
        }
コード例 #3
0
ファイル: AlertController.cs プロジェクト: dfengwji/unity
        public T ShowWindow <T>(UIParamInfo info, bool effect, bool mask) where T : AppWindow
        {
            if (overlayMask != null)
            {
                overlayMask.SetActive(mask);
            }
            T clone = ZAssetController.Instance.ActivateAsset <T>(windowBox);

            _alertWindow      = clone;
            openedWindow      = typeof(T).Name;
            clone.effectPoint = effectBox;
            if (historyWindows.ContainsKey(openedWindow))
            {
                historyWindows.Remove(openedWindow);
            }
            historyWindows.Add(openedWindow, info);

            if (effect && openDelay > 0.01f)
            {
                StartCoroutine(ShowInspector(clone, info));
            }
            else
            {
                StartCoroutine(OpenDelay(clone, info));
            }
            return(clone);
        }
コード例 #4
0
ファイル: AlertController.cs プロジェクト: dfengwji/unity
 public static T ShowWindow <T>(UIParamInfo info, bool mask = true) where T : AppWindow
 {
     if (AlertController.Instance == null)
     {
         Debug.LogError("AlertController is not find!!!");
     }
     return(ShowWindow <T>(info, true, mask));
 }
コード例 #5
0
ファイル: AppWindow.cs プロジェクト: dfengwji/unity
 public virtual void Appear(UIParamInfo info)
 {
     paramInfo = info;
     if (contentBox.gameObject.activeSelf == false)
     {
         contentBox.gameObject.SetActive(true);
     }
 }
コード例 #6
0
 public static void DisplayPanel <T>(UIParamInfo info) where T : ZUIPanel
 {
     if (Instance == null)
     {
         Debug.LogError("panel controller is not find!!!");
     }
     Instance.ShowPanel <T>(info);
 }
コード例 #7
0
 IEnumerator OpenInspector(ZUIPanel panel, UIParamInfo info)
 {
     while (panel.IsStartEnd == false)
     {
         yield return(null);
     }
     panel.Open(info);
 }
コード例 #8
0
 public static void WakenCurrentPanel(UIParamInfo info)
 {
     if (Instance == null)
     {
         Debug.LogError("panel controller is not find!!!");
     }
     Instance.RepeatOpenPanel(Instance.currentPanel, info);
 }
コード例 #9
0
ファイル: AlertController.cs プロジェクト: dfengwji/unity
 IEnumerator OpenDelay(AppWindow window, UIParamInfo info)
 {
     while (!window.IsStarted)
     {
         yield return(null);
     }
     window.AddListeners();
     window.Appear(info);
 }
コード例 #10
0
 private void ActivePanel(IZUIPanel panel, UIParamInfo param)
 {
     if (panel == null)
     {
         return;
     }
     UpdateHistory();
     panel.WakenUp(panelParent);
     _currentPanel = panel as ZUIPanel;
     current       = _currentPanel.name;
     StartCoroutine(OpenInspector(_currentPanel, param));
 }
コード例 #11
0
        /// <summary>
        /// 重复打开
        /// </summary>
        /// <param name="panel"></param>
        /// <param name="param"></param>
        public void RepeatOpenPanel(IZUIPanel panel, UIParamInfo param)
        {
            if (panel == null)
            {
                return;
            }
            UpdateHistory();
            panel.Open(panelParent, param);
            _currentPanel = panel as ZUIPanel;
            current       = _currentPanel.name;

            ZLog.Warning("panel name = " + current + " is opened!!!");
        }
コード例 #12
0
        public void ShowPanel <T>(UIParamInfo info) where T : ZUIPanel
        {
            if (IsWaken <T>())
            {
                T tmp = GetWakenPanel <T>();
                RepeatOpenPanel(tmp, info);
                return;
            }
            T panel = GetSleepPanel <T>();

            if (panel == null)
            {
                panel = CreatePanel <T>(panelParent);
            }

            ActivePanel(panel, info);
        }
コード例 #13
0
ファイル: AlertController.cs プロジェクト: dfengwji/unity
        IEnumerator ShowInspector(AppWindow window, UIParamInfo info)
        {
            isTween = true;
            if (mShowVfx != null)
            {
                mShowVfx.gameObject.SetActive(true);
                mShowVfx.Play();
            }
            if (mCloseVfx != null)
            {
                mCloseVfx.Stop();
                mCloseVfx.gameObject.SetActive(false);
            }

            window.AddListeners();
            yield return(new WaitForSeconds(openDelay));

            window.Appear(info);
            isTween = false;
        }
コード例 #14
0
ファイル: AlertController.cs プロジェクト: dfengwji/unity
 private static T ShowWindow <T>(UIParamInfo info, bool effect, bool mask = true) where T : AppWindow
 {
     if (AlertController.Instance == null)
     {
         Debug.LogError("AlertController is not find!!!");
     }
     if (Alert.HasWindow)
     {
         if (AlertController.Instance.IsOpened <T>())
         {
             AppWindow tmp = AlertController.Instance.GetCurrentWindow <T>();
             tmp.Appear(info);
             return(tmp as T);
         }
         AlertController.Instance.CloseNow();
         return(AlertController.Instance.ShowNow <T>(info, effect, true));
     }
     else
     {
         return(AlertController.Instance.ShowWindow <T>(info, effect, mask));
     }
 }
コード例 #15
0
ファイル: AlertController.cs プロジェクト: dfengwji/unity
        public T ShowNow <T>(UIParamInfo info, bool effect, bool mask) where T : AppWindow
        {
            if (overlayMask != null)
            {
                overlayMask.SetActive(mask);
            }
            if (_alertWindow != null && typeof(T) == _alertWindow.GetType())
            {
                return(_alertWindow as T);
            }

            T clone = ZAssetController.Instance.ActivateAsset <T>(windowBox);

            _alertWindow      = clone;
            openedWindow      = typeof(T).Name;
            clone.effectPoint = effectBox;
            if (historyWindows.ContainsKey(openedWindow))
            {
                historyWindows.Remove(openedWindow);
            }
            historyWindows.Add(openedWindow, info);
            StartCoroutine(OpenDelay(clone, info));
            return(clone);
        }
コード例 #16
0
 public override void Appear(UIParamInfo info)
 {
     base.Appear(info);
 }
コード例 #17
0
ファイル: ZUIPanel.cs プロジェクト: dfengwji/unity
 public void Open(Transform parent, UIParamInfo info)
 {
     SetParent(parent);
     UpdateDepth(PanelDepthType.Top);
     Open(info);
 }