Пример #1
0
        public void Show()
        {
            if (isShow)
            {
                return;
            }

            isShow = true;
            IsBusy = true;

            if (showPanelTransit != null)
            {
                showPanelTransit.transit(true, () => { IsBusy = false; });
                if (showItemTransit != null)
                {
                    for (int i = 0; i < itemList.Count; i++)
                    {
                        BlockListItem item = itemList[i];
                        item.showTransit.resetTransit(true);
                        item.gameObject.SetActive(false);
                    }
                }
            }
            else
            {
                gameObject.SetActive(true);
                IsBusy = false;
            }
        }
Пример #2
0
        public void TurnOn()
        {
            if (!hasInit)
            {
                Init();
            }

            outputString = "";

            inputManager           = MultiInputManager.Instance;
            oldLayerMask           = inputManager.layerMask;
            inputManager.layerMask = LayerMask.GetMask("FloatKeyboard");

            isShift = false;
            RefreshKeyboard();

            if (showTransit != null)
            {
                isBusy = true;
                gameObject.SetActive(true);
                showTransit.transit(true, () => { isBusy = false; });
            }
            else
            {
                gameObject.SetActive(true);
            }
        }
Пример #3
0
        public void Show()
        {
            IsBusy = true;
            showPanelTransit.transit(true, () => { IsBusy = false; });

            for (int i = 0; i < itemList.Count; i++)
            {
                BlockListItem item = itemList[i];
                item.showTransit.resetTransit(true);
                item.gameObject.SetActive(false);
            }
        }
Пример #4
0
        /*
         * protected virtual void LateUpdate()
         * {
         *
         *  // 判定是否真的转场完毕了。这里会检查是否还有子转场未完成
         *  if (inTrans)
         *  {
         *      ////LogManager.Log("Check Transit Over!! [" + this + "]");
         *      if (!_inTransSelf && transitChildList.Count == 0)
         *      {
         *          inTrans = false;
         *
         *          ////LogManager.Log("[" + this + "] Transit Over now");
         *
         *          dealTransitOver();
         *      }
         *  }
         * }
         */

        public static void StartTransit(GameObject obj, int group, bool isIn, bool needReset, Action cbFinish)
        {
            bool hasTransit = false;

            TransitObject[] tObjs = obj.GetComponents <TransitObject>();
            //Debug.Log("【" + obj.name + "】len=" + tObjs.Length);
            for (int i = 0; i < tObjs.Length; i++)
            {
                TransitObject tObj = tObjs[i];
                if (group < 0 || tObj.transitGroup == group)
                {
                    tObj.needResetBeforeTransit = needReset;
                    tObj.transit(isIn, cbFinish);

                    hasTransit = true;
                }
            }
            if (!hasTransit)
            {
                if (cbFinish != null)
                {
                    cbFinish();
                }
            }
        }
Пример #5
0
        public void ChangePage(int page)
        {
            if (page < 0)
            {
                page = 0;
            }
            if (page > PageCount)
            {
                page = PageCount;
            }

            if (isChangingPage)
            {
                return;
            }

            curPage = page;

            isChangingPage = true;


            for (int i = 0; i < countPerPage; i++)
            {
                BlockListItem item = itemList[i];
                if (item.gameObject.activeSelf)
                {
                    item.showTransit.delayTime = 0;
                }
            }

            showItemTransit.transit(false, HideOK);

            pageText.text = "" + curPage + " / " + pageCount;

            if (pageCount > 1)
            {
                prevReceiver.gameObject.SetActive(true);
                nextReceiver.gameObject.SetActive(true);
            }
            else
            {
                prevReceiver.gameObject.SetActive(false);
                nextReceiver.gameObject.SetActive(false);
            }
        }
Пример #6
0
        /// <summary>
        /// 调度转场,需设置是否延迟启动
        /// </summary>
        /// <param name='isIn'>
        /// 转入还是转出
        /// </param>
        /// <param name='_cb'>
        /// 转场完成的回调
        /// </param>
        public void transit(bool isIn, Action cb)
        {
            if (reverse)
            {
                isIn = !isIn;
            }

            isTransIn    = isIn;
            inTrans      = true;
            _inTransSelf = true;

            if (foc != null)
            {
                foc.Terminate();
            }

            // 设置完成回调
            foc = FinishObjectUtil.getInstance().createFinishObjectController();
            foc.AddObject(this);
            foc.cbFinish += dealTransitOver;
            foc.cbFinish += cb;

            // 驱动子转场
            int count = 0;

            // 如果有子内容需要转场
            if (needTransitChild)
            {
                TransitObject[] list = GetComponentsInChildren <TransitObject>(true);
                //Debug.Log("Find " + list.Length + " child");
                for (int i = 0; i < list.Length; i++)
                {
                    TransitObject tobj = list[i];

                    if (tobj != null && tobj != this && tobj.transitGroup == this.transitGroup)
                    {
                        if (!tobj.needShowWhenTransitIn && !tobj.gameObject.activeSelf)
                        {
                            continue;
                        }

                        /*
                         * if (tobj.isBusy())
                         * {
                         *  Debug.Log("[" + tobj + "] busy!");
                         *  continue;
                         * }
                         */

                        tobj.transit(isIn, null);

                        foc.AddObject(tobj);

                        count++;
                    }
                }
                //Debug.Log("Transit " + count + " sub object");
            }

            foc.Start();


            switch (delayType)
            {
            case TransitDelayType.WaitForTime:          // 等待时间
                if (timerKey > 0)
                {
                    TimerManager.Instance.RemoveTimer(timerKey);
                }
                isWaitingContinue = true;
                timerKey          = TimerManager.Instance.RegisterTimer(DelayByTime, delayTime, 1);
                //Debug.Log("Regist timer " + timerKey);
                break;

            case TransitDelayType.WaitForCall:          // 等待调用
                isWaitingContinue = true;
                break;

            default:            // 无延迟
                DealShow();
                transitContent(isIn);
                break;
            }
        }