Ejemplo n.º 1
0
 public override void PauseTimer(bool ispause = true)
 {
     _IsPause = ispause;
     if (ispause)
     {
         if (state == EventState.ES_Normal)
         {
             base.PauseTimer(ispause);
             _pauseTime = ScriptsTime.GetTimes();
             TurnTimer(TimerTurnType.TT_Pause);
         }
     }
     else
     {
         if (state == EventState.ES_Pause)
         {
             float curTime = ScriptsTime.GetTimes();
             float pt      = curTime - _pauseTime;
             _startTime += pt;
             nextTime   += pt;
             IsStatic    = (nextTime - curTime) >= 5000;
             base.PauseTimer(ispause);
             TurnTimer(TimerTurnType.TT_UnPause);
         }
     }
 }
Ejemplo n.º 2
0
 public TEvent()
 {
     handle     = ++MaxHandle;
     stBody     = FEngineManager.Engine;
     _startTime = ScriptsTime.GetTimes();
     state      = EventState.ES_Normal;
 }
Ejemplo n.º 3
0
        internal void openInit(OpenType type, params object[] o)
        {
            mIsRealPlane     = true;
            mInitOver        = false;
            mInitDelayAction = null;
            mMainPlane       = this.gameObject.GetComponent <FCUniversalPanel>();
            mIsClose         = false;
            mArgs            = o;
            if (type != OpenType.OT_Normal)
            {
                openPool(type, o);
            }
            else
            {
                ScriptsTime.BeginTag("_plane");
                Init(o);
                ScriptsTime._ShowTimeTag("_plane", this.GetType().Name + "打开消耗");
            }

            mInitOver = true;
            if (mInitDelayAction != null)
            {
                mInitDelayAction();
            }
        }
Ejemplo n.º 4
0
 public override void ResetData()
 {
     frequency  = 0;
     _pauseTime = 0;
     base.ResetData();
     if (_IsPause && state == EventState.ES_Normal)
     {
         _pauseTime = ScriptsTime.GetTimes();
         state      = EventState.ES_Pause;
     }
 }
Ejemplo n.º 5
0
        IEnumerator PlayFun(GameProgress gp, BaseLoad bl)
        {
            ScriptsTime.BeginTag("_loadScene");
            mLoadPercent.GoOn(0, "");
            if (bl != null)
            {
                yield return(bl.PlayStart());
            }
            else
            {
                yield return(0);
            }

            FEngineManager.CloseWindos();

            bool isPack = FEConfigure.mIsNoPack;

            if (mIsFirst)
            {
                mIsFirst = false;
                if (isPack)
                {
                    mLoadPercent.GoOn(0.3f);
                    BundleManager._isLoadComplete = true;
                }
                else
                {
                    ScriptsTime.BeginTag("_LoadAssetBundles");
                    //进场景第一次加载资源初始化
                    mLoadPercent.SetKD("Detection_Resources");
                    mLoadPercent.Reset("");
                    yield return(BundleManager.instance.CopyStreamingAsset(mLoadPercent.CreateBranch(1), FEngineManager.GetFBEngine().GetBundleAskCall()));

                    mLoadPercent.SetKD("Loading_Resources");
                    mLoadPercent.Reset("");
                    yield return(BundleManager.instance.LoadAssetBundles("", mLoadPercent.CreateBranch(0.95f)));

                    ScriptsTime._ShowTimeTag("_LoadAssetBundles", "加载资源消耗");
                }
                ScriptsTime.BeginTag("_LoadManager");
                yield return(FEngineManager.GetFBEngine().LoadManager());

                ScriptsTime._ShowTimeTag("_LoadManager", "加载单件管理器");
            }


            string relaySceneName = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name;

            //逻辑处理
            EventManager.instance.Send(LoadSceneManager.LoadEvent, LoadSceneManager.LoadType.LT_BeginMask, mCurLoadMode);
            if (bl != null)
            {
                yield return(bl.PlayResoureOver());
            }

            ScriptsTime.BeginTag("_UnLoadSysBundles");
            mLoadPercent.SetKD("LoadingScene");
            mLoadPercent.GoOn(0.7f);
            LoadSceneManager.instance.LoadDirectScene(GameProgress.GP_NONE);

            if (!isPack)
            {
                FEngineManager.GetFBEngine().PreLoadObject(relaySceneName, false);
            }

            //开启异步加载销毁
            // lua gc
            FEngineManager.GetFBEngine().LoadFrontScene(gp);

            ScriptsTime._ShowTimeTag("_UnLoadSysBundles", "卸载当前场景消耗");

            ScriptsTime.BeginTag("_LoadSceneAsy");
            yield return(LoadSceneManager.instance.LoadSceneAsy(gp));

            ScriptsTime._ShowTimeTag("_LoadSceneAsy", "切换场景消耗");

            mLoadPercent.SetKD("Preloading");
            mLoadPercent.GoOn(0.9f);
            string newSceneName = LoadSceneManager.instance.GetSceneName(gp);

            if (!isPack)
            {
                Timer_Mix mix = FEngineManager.GetFBEngine().PreLoadObject(newSceneName, true);
                if (mix != null)
                {
                    ScriptsTime.BeginTag("_PreLoadObject");
                    if (!mix.IsOver)
                    {
                        var pre = mLoadPercent.CreateBranch(1, false);
                        pre.SetTimece(mix.MaxNum);
                        int lastNum = -1;
                        while (!mix.IsOver)
                        {
                            if (lastNum != mix.CurNum)
                            {
                                pre.GoOn(mix.CurNum.ToString() + "/" + mix.MaxNum.ToString());
                                lastNum = mix.CurNum;
                            }
                            yield return(0);
                        }
                    }
                    ScriptsTime._ShowTimeTag("_PreLoadObject", "预加载消耗");
                }
            }
            mLoadPercent.Over();
            if (mLastLoadMode != null)
            {
                mLastLoadMode.PlayLoad(LoadSceneManager.LoadType.Lt_Back);
            }
            mCurLoadMode.PlayLoad(LoadSceneManager.LoadType.Lt_EnterMask);
            EventManager.instance.Send(LoadSceneManager.LoadEvent, LoadSceneManager.LoadType.Lt_EnterMask, mCurLoadMode);
            if (bl != null)
            {
                yield return(bl.PlayEnd());

                FEngineManager.DeletObject(bl);
            }
            else
            {
                yield return(0);
            }
            yield return(0);

            CloseMySelf(true);
            mCurLoadMode.PlayLoad(LoadSceneManager.LoadType.Lt_Enter);
            EventManager.instance.Send(LoadSceneManager.LoadEvent, LoadSceneManager.LoadType.Lt_Enter, mCurLoadMode);
            ScriptsTime._ShowTimeTag("_loadScene", "加载场景" + newSceneName + "总时间");
        }
Ejemplo n.º 6
0
 private static int DEGREE = 10;//精度DEGREE毫秒
 public TimerMachine()
 {
     mTimerRunTime = ScriptsTime.GetTimes();
     mStartTime    = mTimerRunTime;
 }
Ejemplo n.º 7
0
 private float _pauseTime         = 0;                     //暂停时间
 internal TimerEvent SetNextTime(float waitTime)
 {
     nextTime = ScriptsTime.GetTimes() + waitTime * 1000;
     IsStatic = false;
     return(this);
 }
Ejemplo n.º 8
0
 public virtual void ResetData()
 {
     _startTime = ScriptsTime.GetTimes();
     state      = EventState.ES_Normal;
 }
Ejemplo n.º 9
0
            public void Update()
            {
                mTempDeltaTime = ScriptsTime.GetTimes();
                mDeltaTime     = (mTempDeltaTime - mTimerRunTime) / 1000.0f;
                mTimerRunTime  = mTempDeltaTime;
                //定时器转换
                if (mTurnEvents.Count != 0)
                {
                    for (int i = 0; i < mTurnEvents.Count; i++)
                    {
                        var timer = mTurnEvents[i];
                        if (timer.mTurnType == TimerEvent.TimerTurnType.TT_DynamicTurn)
                        {
                            PustTimer(timer);
                        }
                        else
                        {
                            switch (timer.mTurnType)
                            {
                            case TimerEvent.TimerTurnType.TT_Pause:
                                PustTimer(timer);
                                break;

                            case TimerEvent.TimerTurnType.TT_UnPause:
                                PustTimer(timer);
                                break;

                            case TimerEvent.TimerTurnType.TT_Reset:
                                timer.ResetData();
                                PustTimer(timer);
                                break;

                            case TimerEvent.TimerTurnType.TT_Delete:
                                ForceFree(timer, true);
                                break;
                            }
                        }
                    }
                    mTurnEvents.Clear();
                }

                //动态定时器
                if (mDynamicTimerEvents.Count != 0)
                {
                    for (int i = mDynamicTimerEvents.Count - 1; i >= 0; i--)
                    {
                        var        timer  = mDynamicTimerEvents[i];
                        TimerState result = _PlayTimer(timer);
                        if (result == TimerState.T_Carry)
                        {
                            if (timer.IsStatic)
                            {
                                PushTurnEvent(TimerEvent.TimerTurnType.TT_DynamicTurn, timer);
                            }
                        }
                        else if (result == TimerState.T_Turn)
                        {
                            ForceFree(timer, false);
                        }
                    }
                }

                int tick = (int)((mTempDeltaTime - mStartTime) / DEGREE);//DEGREE毫秒的精度

                mLastTick = tick;
            }