一、导入音效
二、识别imageTarget播放音效
1.添加Audio Source组件
指定背景音乐,play on awake取消勾选,也就取消了自动播放,因为要在识别到物体后才播放音效
2. 修改脚本
- 打开imageTarget上的
myDefaultObserverEventHandler
脚本(原本为DefaultObserverEventHandler,因为我修改过这个脚本,所以重新命名为myDefaultObserverEventHandler
- 类中定义变量
private AudioSource audio;//识别到目标物体后播放的音效
public AudioClip welcomClip;//识别到目标物体8秒后播放的音效
注:AudioSource是一个组件,AudioClip 是AudioSource的一个属性,前者是音乐源,可以控制音乐的播放等;后者可以从资源ReSources文件中直接获得音频文件。
- 修改 Start()函数
protected virtual void Start()
{
mObserverBehaviour = GetComponent<ObserverBehaviour>();
if (mObserverBehaviour)
{
mObserverBehaviour.OnTargetStatusChanged += OnObserverStatusChanged;
mObserverBehaviour.OnBehaviourDestroyed += OnObserverDestroyed;
OnObserverStatusChanged(mObserverBehaviour, mObserverBehaviour.TargetStatus);
SetupPoseSmoothing();
}
audio = this.GetComponent<AudioSource>();//添加这一句
}
- 修改OnTrackingFound()函数
if (!audio.isPlaying)
{
//如果音效没有在播放,就播放声音
audio.Play();
}
- 播放另一段音效
新建一个函数
private void PlayWelcomeClip()
{
AudioSource.PlayClipAtPoint(welcomClip, transform.position);
}
回到imageTarget,指定一下clip
- 设置8秒后播放音效
在Start()函数中添加一句
Invoke("PlayWelcomeClip", 8.0f);//8秒后调用PlayWelcomeClip方法
参考文章:游戏中的声音和音效