From 13e8410d80963676d6ce2f155b4e29a53cac68c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Sat, 8 Mar 2025 11:50:35 +0800 Subject: [PATCH] fix #389 --- .../DiagnosticSystem/RemoteDebuggerInRuntime.cs | 9 +++++++++ .../Runtime/DiagnosticSystem/RemoteEditorConnection.cs | 8 ++++++++ .../Runtime/DiagnosticSystem/RemotePlayerConnection.cs | 8 ++++++++ .../Runtime/DownloadSystem/DownloadSystemHelper.cs | 9 +++++++++ .../Runtime/DownloadSystem/WebRequestCounter.cs | 8 ++++++++ .../Runtime/OperationSystem/OperationSystem.cs | 8 ++++++++ .../YooAsset/Runtime/Settings/YooAssetSettingsData.cs | 8 ++++++++ Assets/YooAsset/Runtime/YooAssets.cs | 10 ++++++++++ Assets/YooAsset/Runtime/YooAssetsDriver.cs | 8 ++++++++ 9 files changed, 76 insertions(+) diff --git a/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteDebuggerInRuntime.cs b/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteDebuggerInRuntime.cs index b41c5485..2c8b5d7b 100644 --- a/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteDebuggerInRuntime.cs +++ b/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteDebuggerInRuntime.cs @@ -7,6 +7,15 @@ namespace YooAsset { internal class RemoteDebuggerInRuntime : MonoBehaviour { +#if UNITY_EDITOR + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + _sampleOnce = false; + _autoSample = false; + } +#endif + private static bool _sampleOnce = false; private static bool _autoSample = false; diff --git a/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteEditorConnection.cs b/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteEditorConnection.cs index fe388a59..9b8cbb53 100644 --- a/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteEditorConnection.cs +++ b/Assets/YooAsset/Runtime/DiagnosticSystem/RemoteEditorConnection.cs @@ -8,6 +8,14 @@ namespace YooAsset { internal class RemoteEditorConnection { +#if UNITY_EDITOR + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + _instance = null; + } +#endif + private static RemoteEditorConnection _instance; public static RemoteEditorConnection Instance { diff --git a/Assets/YooAsset/Runtime/DiagnosticSystem/RemotePlayerConnection.cs b/Assets/YooAsset/Runtime/DiagnosticSystem/RemotePlayerConnection.cs index 05f8db53..5522bda9 100644 --- a/Assets/YooAsset/Runtime/DiagnosticSystem/RemotePlayerConnection.cs +++ b/Assets/YooAsset/Runtime/DiagnosticSystem/RemotePlayerConnection.cs @@ -8,6 +8,14 @@ namespace YooAsset { internal class RemotePlayerConnection { +#if UNITY_EDITOR + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + _instance = null; + } +#endif + private static RemotePlayerConnection _instance; public static RemotePlayerConnection Instance { diff --git a/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystemHelper.cs b/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystemHelper.cs index bd1f24e8..f5ccfa3e 100644 --- a/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystemHelper.cs +++ b/Assets/YooAsset/Runtime/DownloadSystem/DownloadSystemHelper.cs @@ -1,4 +1,5 @@ using UnityEngine.Networking; +using UnityEngine; namespace YooAsset { @@ -9,6 +10,14 @@ namespace YooAsset internal class DownloadSystemHelper { +#if UNITY_EDITOR + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + UnityWebRequestCreater = null; + } +#endif + public static UnityWebRequestDelegate UnityWebRequestCreater = null; public static UnityWebRequest NewUnityWebRequestGet(string requestURL) { diff --git a/Assets/YooAsset/Runtime/DownloadSystem/WebRequestCounter.cs b/Assets/YooAsset/Runtime/DownloadSystem/WebRequestCounter.cs index 0c962d91..72984b55 100644 --- a/Assets/YooAsset/Runtime/DownloadSystem/WebRequestCounter.cs +++ b/Assets/YooAsset/Runtime/DownloadSystem/WebRequestCounter.cs @@ -6,6 +6,14 @@ namespace YooAsset { internal class WebRequestCounter { +#if UNITY_EDITOR + [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + _requestFailedRecorder.Clear(); + } +#endif + /// /// 记录网络请求失败事件的次数 /// diff --git a/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs b/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs index 74d5fe6b..75a22a21 100644 --- a/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs +++ b/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs @@ -6,6 +6,14 @@ namespace YooAsset { internal class OperationSystem { +#if UNITY_EDITOR + [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + DestroyAll(); + } +#endif + private static readonly List _operations = new List(1000); private static readonly List _newList = new List(1000); diff --git a/Assets/YooAsset/Runtime/Settings/YooAssetSettingsData.cs b/Assets/YooAsset/Runtime/Settings/YooAssetSettingsData.cs index 13ce8b80..6ea1560b 100644 --- a/Assets/YooAsset/Runtime/Settings/YooAssetSettingsData.cs +++ b/Assets/YooAsset/Runtime/Settings/YooAssetSettingsData.cs @@ -5,6 +5,14 @@ namespace YooAsset { public static class YooAssetSettingsData { +#if UNITY_EDITOR + [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + _setting = null; + } +#endif + private static YooAssetSettings _setting = null; internal static YooAssetSettings Setting { diff --git a/Assets/YooAsset/Runtime/YooAssets.cs b/Assets/YooAsset/Runtime/YooAssets.cs index 4a112c42..5dc8a2a6 100644 --- a/Assets/YooAsset/Runtime/YooAssets.cs +++ b/Assets/YooAsset/Runtime/YooAssets.cs @@ -9,6 +9,16 @@ namespace YooAsset { public static partial class YooAssets { +#if UNITY_EDITOR + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + _isInitialize = false; + _packages.Clear(); + _defaultPackage = null; + } +#endif + private static bool _isInitialize = false; private static GameObject _driver = null; private static readonly List _packages = new List(); diff --git a/Assets/YooAsset/Runtime/YooAssetsDriver.cs b/Assets/YooAsset/Runtime/YooAssetsDriver.cs index 176104f8..d576bfcb 100644 --- a/Assets/YooAsset/Runtime/YooAssetsDriver.cs +++ b/Assets/YooAsset/Runtime/YooAssetsDriver.cs @@ -5,6 +5,14 @@ namespace YooAsset { internal class YooAssetsDriver : MonoBehaviour { +#if UNITY_EDITOR + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnRuntimeInitialize() + { + LastestUpdateFrame = 0; + } +#endif + private static int LastestUpdateFrame = 0; void Update()