From 60533410f0d9c1d491cbf3ba3317a87487974bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JasonXuDeveloper=20-=20=E5=82=91?= Date: Sun, 4 Dec 2022 21:44:13 +1100 Subject: [PATCH] fixed #445 --- .../Dll/Hidden~/HotUpdateScripts.dll | Bin 107008 -> 107520 bytes .../Dll/Hidden~/HotUpdateScripts.pdb | Bin 44096 -> 44288 bytes .../JEngine/Core/JBehaviour.cs | 174 +++++++++++------- 3 files changed, 105 insertions(+), 69 deletions(-) diff --git a/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.dll b/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.dll index 230ff08bdd0561e1d9b7e7b0ee1c381946516341..136a4545baa45e531bf7574e1514b80eabe7b089 100644 GIT binary patch delta 37031 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 I6eaHe0O=w8>;M1& delta 36907 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 diff --git a/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.pdb b/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.pdb index 8873804348b73404ca373a27fe332a7d4cb4c3d5..59635483b519865e2017d985f873f35a5b7d17cd 100644 GIT binary patch delta 4727 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 diff --git a/UnityProject/HotUpdateScripts/JEngine/Core/JBehaviour.cs b/UnityProject/HotUpdateScripts/JEngine/Core/JBehaviour.cs index e774c996..315eb961 100644 --- a/UnityProject/HotUpdateScripts/JEngine/Core/JBehaviour.cs +++ b/UnityProject/HotUpdateScripts/JEngine/Core/JBehaviour.cs @@ -69,6 +69,8 @@ public static string GetJBehaviourInstanceID() /// static JBehaviour() { + //注册循环 + Loom.QueueOnMainThread(_ => JBehavioursLoop(), null); //注册检查 LifeCycleMgr.Instance.AddUpdateTask(UpdateCheck, () => Application.isPlaying); } @@ -140,6 +142,95 @@ private static void UpdateCheck() } } + + + /// + /// Do the loop + /// + private static async void JBehavioursLoop() + { + Stopwatch sw = new Stopwatch(); + JBehaviour jb; + for(; ; ) + { + if (!Application.isPlaying) break; + await TimeMgr.Delay(1); + int cnt = LoopJBehaviours.Count; + for (int i = 0; i < cnt; i++) + { + jb = LoopJBehaviours[i]; + if (jb._gameObject != null && !jb.LoopAwaitToken.IsCancellationRequested) + { + if (jb.Paused || jb.Hidden) + { + continue; + } + + + //调整参数 + if (jb.TimeScale < 0.001f) + { + jb.TimeScale = 1; + } + if (jb.Frequency <= 0) + { + jb.Frequency = 1; + } + + int duration; + if (jb.FrameMode)//等待 + { + duration = (int)(jb.Frequency / ((float)Application.targetFrameRate <= 0 ? GameStats.FPS : Application.targetFrameRate) * 1000f); + duration = (int)(duration / jb.TimeScale); + } + else + { + duration = jb.Frequency; + duration = (int)(duration / jb.TimeScale); + } + if (duration < -1) + { + duration = 1; + } + + if (Time.realtimeSinceStartup - jb.CurTime < duration / 1000f) + { + continue; + } + + jb.CurTime = Time.realtimeSinceStartup; + + sw.Reset(); + sw.Start(); + + try//循环 + { + jb.Loop(); + } + catch (Exception ex) + { + Log.PrintError($"{jb._gameObject.name}<{jb._instanceID}> Loop failed: {ex.Message}, {ex.Data["StackTrace"]}"); + } + + sw.Stop(); + + //操作时间 + var time = sw.ElapsedMilliseconds / 1000f + duration / 1000f + 0.001f; + jb.LoopCounts++; + jb.LoopDeltaTime = time; + jb.TotalTime += time; + } + else + { + jb.Destroy(); + LoopJBehaviours.RemoveAt(i); + i--; + cnt = LoopJBehaviours.Count; + } + } + } + } + #region STATIC METHODS /// @@ -299,6 +390,12 @@ public static void RemoveJBehaviour(JBehaviour jBehaviour) /// private static List JBehavioursList = new List(17); + /// + /// All JBehaviours to loop + /// 全部待循环的JBehaviour + /// + private static List LoopJBehaviours = new List(17); + /// /// All JBehaviour in specefic GameObject /// 全部在某个GameObject上的JBehaviour @@ -376,6 +473,13 @@ public static void RemoveJBehaviour(JBehaviour jBehaviour) /// [ClassBindIgnore] private bool EnableHiddenMonitoring = false; + /// + /// Current loop time + /// 当前循环的时间 + /// + [ClassBindIgnore] private float CurTime = 0; + + #endregion #region METHODS @@ -506,74 +610,6 @@ private protected void SetHiddenMonitoring(bool enable) /// [ClassBindIgnore] private CancellationTokenSource LoopAwaitToken; - /// - /// Do the loop - /// - private protected async void DoLoop() - { - Stopwatch sw = new Stopwatch(); - - while (_gameObject != null && !LoopAwaitToken.IsCancellationRequested) - { - if (Paused || Hidden)//暂停或没Active - { - await JEngine.Core.TimeMgr.Delay(10); - continue; - } - - - //调整参数 - if (TimeScale < 0.001f) - { - TimeScale = 1; - } - if (Frequency <= 0) - { - Frequency = 1; - } - - sw.Reset(); - sw.Start(); - - try//循环 - { - Loop(); - } - catch (Exception ex) - { - Log.PrintError($"{_gameObject.name}<{_instanceID}> Loop failed: {ex.Message}, {ex.Data["StackTrace"]}"); - return; - } - - int duration; - if (FrameMode)//等待 - { - duration = (int)(((float)Frequency / ((float)Application.targetFrameRate <= 0 ? GameStats.FPS : Application.targetFrameRate)) * 1000f); - duration = (int)(duration / TimeScale); - } - else - { - duration = Frequency; - duration = (int)(duration / TimeScale); - } - if (duration < -1) - { - duration = 1; - } - - await JEngine.Core.TimeMgr.Delay(duration); - - sw.Stop(); - - //操作时间 - var time = sw.ElapsedMilliseconds / 1000f; - LoopCounts++; - LoopDeltaTime = time; - TotalTime += time; - } - Destroy(); - } - /// /// Call end method /// 调用周期销毁 @@ -670,7 +706,7 @@ private protected void OnEnable() /// private protected void Start() { - DoLoop(); + LoopJBehaviours.Add(this); } private protected static void AddJBehaviourToGameObjectDict(GameObject go, JBehaviour jb)