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

如何在Vuforia Engine Unity SDK v10.13中切换移动设备相机?

Vuforia Engine Unity SDK v10.13 相机切换实现方案

核心实现步骤

  • 获取Vuforia相机设备实例:v10+版本中直接通过CameraDevice.Instance访问,无需旧版复杂初始化流程。
  • 检查当前激活相机方向:调用CameraDevice.Instance.GetActiveCamera()获取当前相机类型(可选值:CameraDevice.CameraDirection.FRONT 前置 / BACK 后置)。
  • 执行相机切换操作:通过SelectCamera()方法切换目标相机,配合Stop()和Start()完成状态流转,示例代码如下:
using UnityEngine;
using Vuforia;

public class CameraSwitcher : MonoBehaviour
{
    // 绑定到UI按钮的点击事件即可触发切换
    public void ToggleCamera()
    {
        if (CameraDevice.Instance == null)
        {
            Debug.LogWarning("Vuforia CameraDevice instance not initialized");
            return;
        }

        var currentCamDir = CameraDevice.Instance.GetActiveCamera();
        var targetCamDir = currentCamDir == CameraDevice.CameraDirection.BACK 
            ? CameraDevice.CameraDirection.FRONT 
            : CameraDevice.CameraDirection.BACK;

        // 先停止当前相机释放资源
        CameraDevice.Instance.Stop();
        
        // 尝试切换到目标相机
        if (CameraDevice.Instance.SelectCamera(targetCamDir))
        {
            // 启动新相机
            CameraDevice.Instance.Start();
            // 重启AR Session确保跟踪状态同步到新相机视角
            VuforiaBehaviour.Instance?.RestartAR();
        }
        else
        {
            Debug.LogError($"Failed to switch to {targetCamDir} camera - device may not support it");
        }
    }
}

关键注意事项

  • 切换前必须停止当前相机,否则会导致设备相机资源占用冲突,引发切换失败。
  • 部分低端设备或特殊机型可能不支持前置/后置相机,可通过CameraDevice.Instance.IsCameraSupported(targetCamDir)提前验证兼容性。
  • 切换相机后重启AR Session是必要操作,否则Vuforia的跟踪状态无法同步到新相机视角。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:52