这篇文章 主要归功于AR学院的大神们!!
原文链接:原文链接
我在这里做个补充。
实现功能:扫描到识别图显示模型的同时播放对应的声音,移走识别图暂停播放,再识别时从上次暂停的地方开始播放。
基本流程:
(1)在Hierarchy面板的空白处 右键,选择 Create Empty 创建空组件(重命名为Audio_X),
在Audio_X组件上 右键 选择Audio下的Audio Sourse 添加Audio Sourse组件并且重命名,
将声音文件拖到Audio Clip中 ,并且注意Spatial Blend 这里最好设置成 2D,因为3D 要涉及到 空间距离 的问题,不太好控制,可能造成你摄像头距离识别图太远了,听不到声音。
(2)将步骤(1)中的Audio_X拖到对应的ImageTarget中;
(3)在ImageTarget上的DefaultTrackableEventHandler脚本中添加一个变量public AudioSource audio,
在DefaultTrackableEventHandler脚本中的Found和Lost函数中添加播放和暂停函数,分别为:
//播放代码
if(!audio.isPlaying)
{
audio.Play();
}
//暂停代码
if(audio.isPlaying)
{
audio.Pause();
}
注意:最重要的一点来了!!这是我当时犯得一个错误,找了好久才找到,不知道你们会不会忘记,反正我是忘记了。就是将(1)步中创建的Audio Sourse组件添加到DefaultTrackableEventHandler脚本上。
(4)如果顺利到达这里,你应该算是大功告成了!!
注意事项:1.场景中必须有一个物体带有Audio Listener,否则听不到声音,此处ARCamera带有。
2.声音组件的Spatial Blend选项最好设置为2D Sound,这样音量大小不会受Audio Listener离音源的距离的影响。
原贴里有一个Demo项目源码,你们可以下载下来看一下。