using GameBase; using TEngine; public partial class GameApp:Singleton { /// /// 热更域App主入口。 /// /// public static void Entrance(object[] objects) { Log.Warning("======= 看到此条日志代表你成功运行了热更新代码 ======="); Log.Warning("======= Entrance GameApp ======="); Instance.Init(); Instance.Start(); Utility.Unity.AddUpdateListener(Instance.Update); Utility.Unity.AddFixedUpdateListener(Instance.FixedUpdate); Utility.Unity.AddLateUpdateListener(Instance.LateUpdate); Utility.Unity.AddDestroyListener(Instance.OnDestroy); Utility.Unity.AddOnDrawGizmosListener(Instance.OnDrawGizmos); Utility.Unity.AddOnApplicationPauseListener(Instance.OnApplicationPause); } private void Start() { GameTime.StartFrame(); var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; logic.OnStart(); } } private void Update() { GameTime.StartFrame(); TProfiler.BeginFirstSample("Update"); var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; TProfiler.BeginSample(logic.GetType().FullName); logic.OnUpdate(); TProfiler.EndSample(); } TProfiler.EndFirstSample(); } private void FixedUpdate() { GameTime.StartFrame(); TProfiler.BeginFirstSample("FixedUpdate"); var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; TProfiler.BeginSample(logic.GetType().FullName); logic.OnFixedUpdate(); TProfiler.EndSample(); } TProfiler.EndFirstSample(); } private void LateUpdate() { GameTime.StartFrame(); TProfiler.BeginFirstSample("LateUpdate"); var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; TProfiler.BeginSample(logic.GetType().FullName); logic.OnLateUpdate(); TProfiler.EndSample(); } TProfiler.EndFirstSample(); } private void OnDestroy() { GameTime.StartFrame(); var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; logic.OnDestroy(); } } private void OnDrawGizmos() { #if UNITY_EDITOR GameTime.StartFrame(); var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; logic.OnDrawGizmos(); } #endif } private void OnApplicationPause(bool isPause) { var listLogic = m_listLogicMgr; var logicCnt = listLogic.Count; for (int i = 0; i < logicCnt; i++) { var logic = listLogic[i]; logic.OnApplicationPause(isPause); } } }