Files
ShrinkEventBus/Runtime/EventAutoRegHelper.cs
T
2026-03-08 18:22:35 +08:00

36 lines
859 B
C#

using UnityEngine;
namespace ShrinkEventBus
{
public static class EventAutoRegHelper
{
private static readonly object InitLock = new();
public static bool IsInitialized { get; private set; }
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
private static void InitializeAfterSceneLoad()
{
EnsureInitialized();
}
public static void EnsureInitialized()
{
if (IsInitialized) return;
lock (InitLock)
{
if (IsInitialized) return;
IsInitialized = true;
}
}
public static void Cleanup()
{
lock (InitLock)
{
IsInitialized = false;
}
EventBus.UnregisterAllEvents();
}
}
}