Ejemplo n.º 1
0
 public void Play()
 {
     if (effect == null)
     {
         return;
     }
     effect.SetActive(true);
     if (!string.IsNullOrEmpty(soundName) && soundName != BindTypes.NONE)
     {
         AudioClip audioClip = ResourceManager.GetAudioClip(GameConst.SoundABDirectory + soundName, soundName);
         audioSource = effect.GetComponent <AudioSource>();
         if (audioSource == null)
         {
             audioSource = effect.AddComponent <AudioSource>();
         }
         audioSource.clip = audioClip;
         audioSource.loop = isLoop;
         audioSource.PlayDelayed(soundDelayTime);
     }
     if (!isLoop)
     {
         totalTime = 0f;
         duration  = SEffectManager.GetEffectDuration(effect, abName, prefabName);
         timerInfo = TimerManager.AddHandler(OnDelayHandler);
     }
 }
Ejemplo n.º 2
0
 public void Init(string effectABName, string effectName, string audioClipName = "", float delayTime = 0f, bool loop = false)
 {
     effect         = SEffectManager.GetEffect(effectABName, effectName);
     soundName      = audioClipName;
     soundDelayTime = delayTime;
     isLoop         = loop;
     abName         = effectABName;
     prefabName     = effectName;
 }
Ejemplo n.º 3
0
 public void Stop()
 {
     TimerManager.RemoveHandler(timerInfo);
     timerInfo = null;
     SEffectManager.RecycleEffect(abName, prefabName, effect);
     if (audioSource != null)
     {
         audioSource.Stop();
         audioSource.clip = null;
     }
     audioSource = null;
     effect      = null;
 }