コード例 #1
0
        public override void PlayAndDestroy()
        {
            if (factory.IsNull())
            {
                DespawnSelf();
                return;
            }

            if (isPlaying)
            {
                return;
            }

            if (!factory.ParticleFactory.IsNull())
            {
                psObj = factory.ParticleFactory.Create(xform);
                PoolManager.SetOnDespawnedCallback(psObj.transform, OnParticleObjectDespawned);
                psObj.PlayAndDestroy();
            }

            if (!factory.SoundFactory.IsNull())
            {
                sndObj = factory.SoundFactory.Create(xform);
                PoolManager.SetOnDespawnedCallback(sndObj.transform, OnSoundObjectDespawned);
                sndObj.PlayAndDestroy();
            }

            isPlaying = true;
        }
コード例 #2
0
 public void Stop()
 {
     if (effectObj)
     {
         effectObj.Destroy();
         effectObj = null;
     }
 }
コード例 #3
0
 public void PlayOneShot()
 {
     if (!effectParams.IsNull())
     {
         effectObj = effectParams.Create(transform);
         effectObj.PlayAndDestroy();
     }
 }
コード例 #4
0
        private void OnSoundObjectDespawned()
        {
            sndObj = null;

            if (psObj == null)
            {
                DespawnSelf();
            }
        }
コード例 #5
0
        private void OnParticleObjectDespawned()
        {
            psObj = null;

            if (sndObj == null)
            {
                DespawnSelf();
            }
        }
コード例 #6
0
        void OnEnable()
        {
            if (!EffectParams.IsNull())
            {
                effectObj = EffectParams.Create(transform);
            }

            effectObj.PlayAndDestroy();
        }