目前我正在做AR音频书,当扫描多个图像目标时,声音将为每个目标播放。我试着按照Unity和vuforia给出的教程,但仍然没有工作。你能救我吗
这个场景包含鸟和老虎。当图像鸟被扫描时,鸟声也会像老虎一样播放。
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Vuforia;
public class ImageTargetPlayAudio : MonoBehaviour,
ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
void Start()
{
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
// Play audio when target is found
GetComponent<AudioSource>().Play();
}
else
{
// Stop audio when target is lost
GetComponent<AudioSource>().Stop();
}
}
}
我将此代码添加到每个图像目标中。
如我错了请纠正我。
RegisterTrackableEventHandler
的文件
此方法在Tracker中注册一个新的Tracker事件处理程序。只要在此框架中更新了所有可跟踪文件,就会调用这些处理程序。
所以你使用错误的方法,检查document,也许OnTrackerUpdate
是合适的。
如果您是Vuforia的新手,您将能够使用GetComponent
上的DefaultTrackableEventHandler
更轻松地处理它,该脚本包含已经正常工作的OnTrackingLost
和OnTrackingFound
事件。
只需为您的自定义脚本添加GetComponent
,如果不是null
,则在该脚本上播放声音。