public static void Unregister(IAspectSpawn spawn) { if (spawn == null || spawn.Aspect == null) { return; } List <IAspectSpawn> list; if (!Spawn.TryGetValue(spawn.Aspect, out list)) { return; } if (list == null) { Spawn.Remove(spawn.Aspect); return; } list.Remove(spawn); if (list.Count == 0) { Spawn.Remove(spawn.Aspect); ObjectPool.Free(list); } }
public static void Register(IAspectSpawn spawn) { if (spawn == null || spawn.Aspect == null) { return; } List <IAspectSpawn> list; if (!Spawn.TryGetValue(spawn.Aspect, out list) || list == null) { Spawn[spawn.Aspect] = list = ListPool <IAspectSpawn> .AcquireObject(); } list.AddOrReplace(spawn); }