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); }
private void StopEmitter(object cookie) { GameObject gameObject = (GameObject)cookie; if (gameObject != null) { MultipleEmittersPool.StopChildEmitters(gameObject); } }
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); } } }
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); }
public unsafe static long $Invoke9(long instance, long *args) { MultipleEmittersPool.StopChildEmitters((GameObject)GCHandledObjects.GCHandleToObject(*args)); return(-1L); }
public unsafe static long $Invoke8(long instance, long *args) { MultipleEmittersPool.StaticReset(); return(-1L); }
public unsafe static long $Invoke5(long instance, long *args) { return(GCHandledObjects.ObjectToGCHandle(MultipleEmittersPool.GetAllEmitters((GameObject)GCHandledObjects.GCHandleToObject(*args)))); }