首先我们需要先获得组件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson12 : MonoBehaviour
{
private AudioSource audioSource;
// Start is called before the first frame update
void Start()
{
audioSource = GetComponent<AudioSource>();
}
}
代码控制播放停止
播放音乐
audioSource.Play();
关掉音乐
audioSource.Stop();
暂停音乐
audioSource.Pause();
延迟播放
audioSource.PlayDelayed(5); // 5秒后播放
停止暂停 和暂停后 play的效果一样 都会继续播放现在的音频
audioSource.UnPause();
如何检测音效播放完毕
如果你希望某一个音效播放完毕后 想要做什么事情,那就可以在Update生命周期函数中 不停的去检测 它的 该属性 如果是false就代表它播放完毕了
if (audioSource.isPlaying)
{
print("播放中");
}
else
{
print("播放结束");
}
如何动态控制音效播放
提前声明好变量
1. 直接在要播放音效的对象上挂在脚本 控制播放
2.实例化挂在了音效源脚本的对象
这种方法 其实用的比较少
Instantiate(obj);
3. 用一个AudioSource来控制播放不同的音效
AudioSource aus = this.gameObject.AddComponent<AudioSource>();
aus.clip = clip;
aus.Play();
潜在知识点
一个GameObject可以挂载多个 音效源脚本AudioSource
使用时要注意 如果挂载多个 那一定要自己管理他们 控制他们的播放 停止 不然我们没办法准确的获取谁是谁。