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()