private void _registerType(Type type) { if (!Spawned.ContainsKey(type)) { Spawned.Add(type, new List <IPoolable>()); } if (!Despawned.ContainsKey(type)) { Despawned.Add(type, new List <IPoolable>()); } }
public void Despawn(IPoolable poolable) { if (poolable == null) { return; } var poolableType = poolable.GetType(); poolable.Despawn(); if (Spawned.ContainsKey(poolableType) && Spawned[poolableType].Contains(poolable)) { Spawned[poolableType].Remove(poolable); Despawned[poolableType].Add(poolable); } poolable.OnDespawn(); }