You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity+Vuforia:为Image Target添加点击播放音频按钮求助

分步实现指南

1. 基础资源与环境准备

  • 将音频文件(MP3/WAV格式)拖入Unity项目,在Inspector面板把Load Type设为Streaming,避免加载卡顿。
  • 在你的AR角色模型上添加AudioSource组件:取消勾选Play On Awake,把音频文件拖到AudioSource的Audio Clip字段。

2. 配置Vuforia Image Target

  • 确保Image Target已正确绑定目标数据库和对应识别图,将AR角色设为Image Target的子物体,默认禁用角色GameObject,扫描到Target时会自动激活显示。

3. 创建交互按钮

选项A:全屏UI按钮

  • 在Hierarchy面板右键选择UI > Button,自动生成Canvas和EventSystem(无则自动创建)。
  • 调整按钮位置、大小,修改按钮Text为“播放角色声音”这类提示,默认禁用按钮GameObject。

选项B:绑定角色的3D按钮

  • 在角色附近创建Cube作为按钮载体,添加Box Collider(勾选Is Trigger)和Button组件(需确保已导入Unity UI模块)。
  • 将3D按钮设为Image Target的子物体,默认禁用。

4. 核心脚本实现

新建C#脚本ARAudioController.cs,代码如下:

using UnityEngine;
using Vuforia;

public class ARAudioController : MonoBehaviour
{
    [SerializeField] private AudioSource characterAudioSource;
    [SerializeField] private GameObject audioButton;

    private void Start()
    {
        var trackable = GetComponent<TrackableBehaviour>();
        if (trackable != null)
        {
            trackable.RegisterOnTrackableStatusChanged(OnTrackableStatusChanged);
        }

        if (audioButton != null)
        {
            audioButton.SetActive(false);
        }
    }

    private void OnTrackableStatusChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
    {
        if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED)
        {
            audioButton.SetActive(true);
        }
        else
        {
            audioButton.SetActive(false);
            characterAudioSource.Stop();
        }
    }

    public void PlayCharacterAudio()
    {
        if (characterAudioSource != null && !characterAudioSource.isPlaying)
        {
            characterAudioSource.Play();
        }
    }
}

5. 绑定脚本与事件

  • 把ARAudioController脚本拖到Image Target GameObject上。
  • 在Inspector面板的ARAudioController组件中,将角色的AudioSource拖入Character Audio Source字段,将按钮GameObject拖入Audio Button字段。
  • 选中按钮GameObject,在Button组件的On Click()列表点击+号,把Image Target拖到对象框,选择ARAudioController > PlayCharacterAudio()。

6. 测试注意事项

  • 用Vuforia AR Camera替换默认Main Camera,确保Vuforia配置正确。
  • 编辑器内可使用Vuforia模拟模式测试,或打包到移动设备测试(无需额外权限,确保音频文件正常打包)。
  • 若音频无声音,检查AudioSource的Volume是否非0、音频文件是否正常、设备音量是否开启。

内容的提问来源于stack exchange,提问作者Krugere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 08:40:12