示例#1
0
    public static void PlayClip(AudioClipEnum clipEnum, float delay = 0, float volume = 1)
    {
        int index = (int)clipEnum;

        if (index < 0 || index >= thePlayer.EnumeratedClips.Length)
        {
            Debug.LogError("Count out of range: " + clipEnum.ToString());
            return;
        }
        AudioClip clip = thePlayer.EnumeratedClips[index];

        if (clip == null)
        {
            Debug.LogError("Clip not found: " + clipEnum.ToString());
            return;
        }
        if (delay > 0)
        {
            thePlayer.ExecuteLater(delay, () =>
            {
                thePlayer._mySource.PlayOneShot(clip, volume);
            });
        }
        else
        {
            thePlayer._mySource.PlayOneShot(clip, volume);
        }
    }
示例#2
0
    public void PlayNext()
    {
        playing?.Stop();
        AudioClipEnum song = NextMusic();

        SoundManager.Ins.Play(song);
        playing = SoundManager.Ins.audioSources[song];
    }
示例#3
0
    public static float ClipLength(AudioClipEnum clipEnum)
    {
        AudioClip clip = thePlayer.EnumeratedClips[(int)clipEnum];

        if (clip == null)
        {
            Debug.LogError("Clip not found: " + clipEnum.ToString());
            return(0);
        }
        return(clip.length);
    }
示例#4
0
 //加载声音剪辑
 private AudioClip LoadAudioClip(AudioClipEnum path)
 {
     for (int i = 0; i < audioClipResource.audioClipResource.Count; i++)
     {
         if (audioClipResource.audioClipResource[i].name == path.ToString())
         {
             return(audioClipResource.audioClipResource[i]);
         }
     }
     return(null);
 }
示例#5
0
    /// <summary>
    /// 播放其余音效
    /// </summary>
    public void PlayAssistAudio(AudioSource audioSource, AudioClipEnum clip, float volume, float pitch, bool loop = false)
    {
        if (audioSource == null)
        {
            audioSource = m_AssistAudioSource;
        }
        if (m_IsMute)
        {
            return;
        }
        AudioClip audioClip = Resources.Load <AudioClip>("Sound/" + clip + "");

        audioSource.clip  = audioClip;
        audioSource.pitch = pitch;
        audioSource.loop  = loop;
        audioSource.Play();
    }
示例#6
0
    //播放音效
    public void Play(AudioClipEnum path)
    {
        AudioSource _AudioSource = null;

        for (int i = 0; i < audioSourceList.Count; i++)
        {
            if (!audioSourceList[i].isPlaying)
            {
                _AudioSource = audioSourceList[i];
            }
        }
        if (_AudioSource == null)
        {
            _AudioSource = gameObject.AddComponent <AudioSource>();
            audioSourceList.Add(_AudioSource);
        }
        _AudioSource.clip = LoadAudioClip(path);
        _AudioSource.Play();
    }
示例#7
0
    public static void RepeatClip(AudioClipEnum clipEnum, int times, float delay = 0)
    {
        int index = (int)clipEnum;

        if (index < 0 || index >= thePlayer.EnumeratedClips.Length)
        {
            Debug.LogError("Count out of range: " + clipEnum.ToString());
            return;
        }
        AudioClip clip = thePlayer.EnumeratedClips[index];

        if (clip == null)
        {
            Debug.LogError("Clip not found: " + clipEnum.ToString());
            return;
        }
        thePlayer._mySource.clip = clip;
        for (int i = 0; i < times; ++i)
        {
            thePlayer.ExecuteLater(delay + clip.length * i, () => thePlayer._mySource.Play());
        }
    }
示例#8
0
 //播放背景音乐,只能有一个背景音乐在播放
 public void PlayMusic(AudioClipEnum path)
 {
     musicAudioSource.clip = LoadAudioClip(path);
     musicAudioSource.Play();
 }