public override void PreReturnToPool(SmartPool prefabSmartPool, SmartPoolObjectInstance obj)
        {
            var p = obj.GetComponent <ParticleSystem>();

            if (p != null)
            {
                p.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear);
            }
        }
示例#2
0
        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();
                }
            }
        }
示例#4
0
        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)
 {
 }
示例#6
0
 public virtual void PreReturnToPool(SmartPool prefabSmartPool, SmartPoolObjectInstance obj)
 {
     obj.gameObject.SetActive(false);
 }
示例#7
0
 public virtual void PostInstantiate(SmartPool prefabSmartPool, SmartPoolObjectInstance obj)
 {
 }
示例#8
0
 public virtual void PreReturnToUser(SmartPool prefabSmartPool, SmartPoolObjectInstance obj)
 {
     obj.transform.CopyLocalsFrom(prefabSmartPool.Prefab.transform);
     obj.gameObject.SetActive(true);
 }
示例#9
0
 public virtual void RequestWhenNoneAvail(SmartPool prefabSmartPool)
 {
     prefabSmartPool.GrowPoolBy(growStep);
 }
示例#10
0
 public virtual void Init(SmartPool prefabSmartPool)
 {
     prefabSmartPool.GrowPoolTo(initialSize);
 }