将脚本挂在要判断声音是否播放完毕的物体上
using System.Collections;
using UnityEngine;
using UnityEngine.Events;
[RequireComponent(typeof(AudioSource))]
public class AudioManager : MonoBehaviour
{
public static AudioManager instence = null;
private AudioSource _audio;
void Awake()
{
if (instence == null)
{
instence = this;
}
}
void Start()
{
_audio = GetComponent<AudioSource>();
}
void Update()
{
//按下键盘按钮A键执行函数播放语音
if (Input.GetKeyDown(KeyCode.A))
{
PlayAudio(GameObject.GetComponent().clip)
}
}
//接受音频文件和是否重复播放
public void PlayAudio(AudioClip clip, UnityAction callback = null, bool isLoop = false)
{
//获取自身音频文件进行播放并且不重复播放
_audio.clip = clip;
_audio.loop = isLoop;
_audio.Play();
//执行协成获取音频文件的时间
StartCoroutine(AudioPlayFinished(_audio.clip.length, callback));
}
//执行协成函数 并且返回时间
private IEnumerator AudioPlayFinished(float time, UnityAction callback)
{
yield return new WaitForSeconds(time);
//声音播放完毕后之下往下的代码
# region 声音播放完成后执行的代码
print("声音播放完毕,继续向下执行");
#endregion
}
}

1555

被折叠的 条评论
为什么被折叠?



