public override void PreReturnToPool(SmartPool prefabSmartPool, SmartPoolObjectInstance obj) { var p = obj.GetComponent <ParticleSystem>(); if (p != null) { p.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear); } }
public SmartPool GetPool(GameObject prefab) { SmartPool pool = null; pools.TryGetValue(prefab.GetInstanceID(), out pool); if (pool == null) { pool = new SmartPool(prefab); pools.Add(prefab.GetInstanceID(), pool); } return(pool); }
public override void PreReturnToUser(SmartPool prefabSmartPool, SmartPoolObjectInstance obj) { var p = obj.GetComponent <ParticleSystem>(); if (p != null) { p.time = 0; if (!p.isPlaying) { p.Play(); } } }
public SmartPool GetOrCreatePool(GameObject prefab) { SmartPool pool = GetPool(prefab); if (pool != null) { return(pool); } if (pool == null) { pool = new SmartPool(prefab); pools[prefab.GetInstanceID()] = pool; } return(pool); }
public override void PostInstantiate(SmartPool prefabSmartPool, SmartPoolObjectInstance obj) { }
public virtual void PreReturnToPool(SmartPool prefabSmartPool, SmartPoolObjectInstance obj) { obj.gameObject.SetActive(false); }
public virtual void PostInstantiate(SmartPool prefabSmartPool, SmartPoolObjectInstance obj) { }
public virtual void PreReturnToUser(SmartPool prefabSmartPool, SmartPoolObjectInstance obj) { obj.transform.CopyLocalsFrom(prefabSmartPool.Prefab.transform); obj.gameObject.SetActive(true); }
public virtual void RequestWhenNoneAvail(SmartPool prefabSmartPool) { prefabSmartPool.GrowPoolBy(growStep); }
public virtual void Init(SmartPool prefabSmartPool) { prefabSmartPool.GrowPoolTo(initialSize); }