unity3d - 检测到多个目标时播放声音。UNITY Vuforia
问题描述
目前我正在做一本 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();
}
}
}
我将此代码添加到每个图像目标中。
如我错了请纠正我。
解决方案
如果您是 Vuforia 的新手,您将能够在 上更轻松地处理它GetComponent
,DefaultTrackableEventHandler
该脚本包含OnTrackingLost
和OnTrackingFound
已经工作的事件。
只需GetComponent
为您的自定义脚本添加一个,如果没有null
,则在该脚本上播放声音。
推荐阅读
- javascript - 关闭模态窗口后停止播放 iframe 视频
- java - 如何在 TestNG 侦听器方法中传递参数 - Selenium Java
- mongodb - 用于数据库访问事件的 MongoDB REST API 不起作用:401 客户端错误:未经授权
- python - 如何根据条件重新编码列
- ietf-netmod-yang - 在杨建模中,我想实现一个叶子,它可以接受 10 到 1000 范围内的值,是 10 的倍数
- django - PasswordResetForm 不发送电子邮件
- c - 从C中的文件中逐个字符地读取
- android - 设置子片段中的视图属性
- php - 如何在 Drupal 7 中获取特定列
- python - Python在循环中将字符串转换为变量