Example #1
0
        public void Update()
        {
            CurTime = Time.realtimeSinceStartup;

            float deltaTime = (float)(CurTime - LastTime);


#if UNITY_EDITOR
            if (!EditorApplication.isPlaying)
            {
                if (!EditView || EditorUtility.IsPersistent(gameObject))
                {
                    return;
                }
                CurTime = EditorApplication.timeSinceStartup;
                if (!CheckEditModeInited())
                {
                    ResetEditScene();
                }
                deltaTime  = (float)(CurTime - LastTime);
                deltaTime *= PlaybackTime;
            }
#endif
            ElapsedTime += deltaTime;


            //simple method to check game delay: the game must run above 10 FPS.
            if (deltaTime > 0.1f)
            {
                deltaTime = 0.0333f;
            }

            if (Paused)
            {
                LastTime = CurTime;
                return;
            }

            if (!UpdateWhenOffScreen && !IsInCameraView() && !EditView)
            {
                LastTime = CurTime;
                return;
            }

            if (!IgnoreTimeScale)
            {
                deltaTime *= Time.timeScale;
            }



            for (int i = 0; i < EflList.Count; i++)
            {
                if (EflList[i] == null)//be destroyed?
                {
                    return;
                }
                EffectLayer el = EflList[i];
                if (ElapsedTime > el.StartTime && IsActive(el.gameObject))
                {
                    el.FixedUpdateCustom(deltaTime);
                }
            }


            for (int i = 0; i < EventList.Count; i++)
            {
                XftEventComponent e = EventList[i];
                if (IsActive(e.gameObject))
                {
                    e.UpdateCustom(deltaTime);
                }
            }

            LastTime = CurTime;

#if UNITY_EDITOR
            if (!EditorApplication.isPlaying)
            {
                LateUpdate();
            }
#endif
        }