public AudioSource audio;
//使用
PlayAudioClip(audioClip3, delegate
{
Debug.Log("音频播放结束"));
});
//协程音频回调
private IEnumerator AudioClipCallback(AudioClip clip, UnityAction<AudioClip> callback)
{
yield return new WaitForSeconds(clip.length);
callback(clip);
}
//音频停止,协程关闭
private void StopAudioClip()
{
if (m_Coroutine != null)
{
StopCoroutine(m_Coroutine);
m_Coroutine = null;
}
audio.Stop();
}
//音频播放,播放完毕协程开启
private void PlayAudioClip(AudioClip clip, UnityAction<AudioClip> callback)
{
StopAudioClip();
audio.clip = clip;
audio.Play();
m_Coroutine = StartCoroutine(AudioClipCallback(clip, callback));
}