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