如何在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
相关产品推荐
相关产品推荐

