fix: Support for skipping "reload domain"

close #406
This commit is contained in:
mob-sakai
2026-06-24 18:57:55 +09:00
parent d6d36006ad
commit 64a050f17c
4 changed files with 40 additions and 2 deletions

View File

@@ -82,6 +82,18 @@ namespace Coffee.UIExtensions
"_ColorMask"
};
/// <summary>
/// ドメインリロード無効化対応:静的キャッシュをクリア
/// </summary>
[InitializeOnLoadMethod]
private static void OnDomainReload()
{
s_Shaders.Clear();
#if UNITY_2018 || UNITY_2019
s_Streams.Clear();
#endif
}
//################################
// Public/Protected Members.
//################################

View File

@@ -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;

View File

@@ -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;
}
/// <summary>

View File

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