Пример #1
0
    void PlaySound()
    {
        if (audioClip != null)
        {
            AudioSource aSrc = SoundManager.Instance.PlayUISoundEffect(audioClip);
            if (aSrc != null)
            {
                AutoDestroyAudio component = aSrc.gameObject.GetComponent <AutoDestroyAudio>();
                if (component == null)
                {
                    component = aSrc.gameObject.AddComponent <AutoDestroyAudio>();
                }

                component.PlayCount       = 1;
                component.DestroyCallback = delegate()
                {
                    SoundManager.Instance.StopSoundEffect(aSrc);
                };
            }
        }
    }
Пример #2
0
 void play()
 {
     if (m_AudioClip != null)
     {
         if (m_AudioSource == null)
         {
             m_AudioSource = SoundManager.Instance.PlaySoundEffect(m_AudioClip, transform.position, 0, m_Range, m_Loop);
             if (m_AudioSource == null)
             {
                 return;
             }
             AutoDestroyAudio component = m_AudioSource.GetComponent <AutoDestroyAudio>();
             if (component != null)
             {
                 component.PlayCount = m_Loop ? int.MaxValue : 1;
             }
         }
         if (!m_AudioSource.isPlaying)
         {
             m_AudioSource.Play();
         }
     }
 }
Пример #3
0
    public override void OnLoadComplete()
    {
        AudioSource aSrc = AudioSourcePools.instance.SpawnByFile(m_FileName, m_Position, m_ParentNode);

        if (aSrc != null && aSrc.clip != null)
        {
            aSrc.pitch       = 1;
            aSrc.volume      = SoundManager.Instance.EffectSoundVolume;
            aSrc.loop        = m_PlayCount > 1 ? true : false;
            aSrc.minDistance = m_MinDistance;
            aSrc.maxDistance = m_MaxDistance;
            if (m_IsPlay)
            {
                aSrc.Play();
            }
            else
            {
                aSrc.Stop();
            }

            AutoDestroyAudio component = aSrc.gameObject.GetComponent <AutoDestroyAudio>();
            if (component == null)
            {
                component = aSrc.gameObject.AddComponent <AutoDestroyAudio>();
            }

            component.PlayCount       = m_PlayCount;
            component.DestroyCallback = OnComponentDestroy;
            m_SoundSource             = aSrc;
        }
        else
        {
            this.Destroy();
            CommonObjectPools.Despawn(this);
            return;
        }
    }