using Unity.Burst; namespace GameCore.TinyECS { internal static class ComponentIdHelper { public static int currentId; } public struct ComponentId { public int id; public static readonly SharedStatic> Instance = SharedStatic>.GetOrCreate>(); [BurstDiscard] static void EnsureInitialized() { if (Instance.Data.id == 0) { Instance.Data.id = ++ComponentIdHelper.currentId; } } public static int Get() { EnsureInitialized(); return Instance.Data.id; } } }