diff --git a/Packages/src/Editor/UIParticleEditor.cs b/Packages/src/Editor/UIParticleEditor.cs
index 801bebe..4f58152 100644
--- a/Packages/src/Editor/UIParticleEditor.cs
+++ b/Packages/src/Editor/UIParticleEditor.cs
@@ -82,6 +82,18 @@ namespace Coffee.UIExtensions
"_ColorMask"
};
+ ///
+ /// ドメインリロード無効化対応:静的キャッシュをクリア
+ ///
+ [InitializeOnLoadMethod]
+ private static void OnDomainReload()
+ {
+ s_Shaders.Clear();
+#if UNITY_2018 || UNITY_2019
+ s_Streams.Clear();
+#endif
+ }
+
//################################
// Public/Protected Members.
//################################
diff --git a/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs b/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs
index 36e38ed..d282ae2 100644
--- a/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs
+++ b/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs
@@ -195,6 +195,13 @@ namespace Coffee.UIParticleInternal
private static T s_Instance;
#if UNITY_EDITOR
+#if UNITY_2019_3_OR_NEWER
+ [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
+ private static void OnDomainReload()
+ {
+ s_Instance = null;
+ }
+#endif
private string _jsonText;
public static bool hasInstance => s_Instance != null;
diff --git a/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs b/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs
index 758536a..89d1ca2 100755
--- a/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs
+++ b/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs
@@ -82,14 +82,22 @@ namespace Coffee.UIParticleInternal
message: "InitializeAfterCanvasRebuild");
}
-#if UNITY_EDITOR
+#if UNITY_EDITOR && UNITY_2019_3_OR_NEWER
+ [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
+#elif UNITY_EDITOR
[InitializeOnLoadMethod]
-#endif
+#else
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
+#endif
private static void InitializeOnLoad()
{
Canvas.willRenderCanvases -= OnAfterCanvasRebuild;
s_IsInitializedAfterCanvasRebuild = false;
+ s_AfterCanvasRebuildAction.Clear();
+ s_LateAfterCanvasRebuildAction.Clear();
+ s_BeforeCanvasRebuildAction.Clear();
+ s_OnScreenSizeChangedAction.Clear();
+ s_LastScreenSize = default;
}
///
diff --git a/Packages/src/Runtime/UIParticleUpdater.cs b/Packages/src/Runtime/UIParticleUpdater.cs
index d82f485..2495c85 100644
--- a/Packages/src/Runtime/UIParticleUpdater.cs
+++ b/Packages/src/Runtime/UIParticleUpdater.cs
@@ -39,6 +39,17 @@ namespace Coffee.UIExtensions
}
#if UNITY_EDITOR
+#if UNITY_2019_3_OR_NEWER
+ [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
+ private static void OnDomainReload()
+ {
+ s_ActiveParticles.Clear();
+ s_ActiveAttractors.Clear();
+ s_UpdatedGroupIds.Clear();
+ s_FrameCount = 0;
+ }
+#endif
+
[InitializeOnLoadMethod]
private static void InitializeOnLoad()
{