/// <summary> /// set options for fragment sound and particle effects /// </summary> /// <param name="sfx"></param> public void SetSFXOptions(Exploder2DObject.SFXOption sfx) { if (pool != null) { HitSoundTimeout = sfx.HitSoundTimeout; MaxEmitters = sfx.EmitersMax; for (int i = 0; i < pool.Length; i++) { pool[i].SetSFX(sfx, i < MaxEmitters); } } }
public void SetSFX(Exploder2DObject.SFXOption sfx, bool allowParticle) { audioClip = sfx.FragmentSoundClip; if (audioClip && !audioSource) { audioSource = gameObject.AddComponent <AudioSource>(); } if (sfx.FragmentEmitter && allowParticle) { if (!particleChild) { var dup = Instantiate(sfx.FragmentEmitter) as GameObject; if (dup) { dup.transform.position = Vector3.zero; particleChild = new GameObject("Particles"); particleChild.transform.parent = gameObject.transform; dup.transform.parent = particleChild.transform; } } if (particleChild) { particleSystems = particleChild.GetComponentsInChildren <ParticleSystem>(); } } else { if (particleChild) { Destroy(particleChild); } } }