Exemple #1
0
        private GameObject CreateEmitterRootPoolObject(GameObjectPool objectPool)
        {
            GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.emitterRootProto);

            gameObject.name = gameObject.name + "_" + MultipleEmittersPool.ID++;
            MultipleEmittersPool.StopChildEmitters(gameObject);
            this.ActivateEmitterRootPoolObject(gameObject);
            return(gameObject);
        }
Exemple #2
0
        private void StopEmitter(object cookie)
        {
            GameObject gameObject = (GameObject)cookie;

            if (gameObject != null)
            {
                MultipleEmittersPool.StopChildEmitters(gameObject);
            }
        }
Exemple #3
0
 public static void StopChildEmitters(GameObject rootNode)
 {
     ParticleSystem[] allEmitters = MultipleEmittersPool.GetAllEmitters(rootNode);
     ParticleSystem[] array       = allEmitters;
     for (int i = 0; i < array.Length; i++)
     {
         ParticleSystem particleSystem = array[i];
         if (!particleSystem.isStopped)
         {
             particleSystem.Stop(false);
         }
     }
 }
Exemple #4
0
        public static EmitterPool CreateEmitterPool(ParticleSystem emitter, EmitterReturnedToPool emitterReturnedToPool)
        {
            EmitterPool result = null;

            if (emitter != null)
            {
                GameObject gameObject = emitter.gameObject;
                while (gameObject.transform.parent != null)
                {
                    gameObject = gameObject.transform.parent.gameObject;
                }
                ParticleSystem[] allEmitters = MultipleEmittersPool.GetAllEmitters(gameObject);
                if (allEmitters.Length > 1)
                {
                    result = new MultipleEmittersPool(gameObject, emitterReturnedToPool);
                }
                else
                {
                    result = new SingleEmitterPool(emitter, emitterReturnedToPool);
                }
            }
            return(result);
        }
Exemple #5
0
 public unsafe static long $Invoke9(long instance, long *args)
 {
     MultipleEmittersPool.StopChildEmitters((GameObject)GCHandledObjects.GCHandleToObject(*args));
     return(-1L);
 }
Exemple #6
0
 public unsafe static long $Invoke8(long instance, long *args)
 {
     MultipleEmittersPool.StaticReset();
     return(-1L);
 }
Exemple #7
0
 public unsafe static long $Invoke5(long instance, long *args)
 {
     return(GCHandledObjects.ObjectToGCHandle(MultipleEmittersPool.GetAllEmitters((GameObject)GCHandledObjects.GCHandleToObject(*args))));
 }