예제 #1
0
        /// <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);
                }
            }
        }
예제 #2
0
        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);
                }
            }
        }