Unity中使用Vuforia开发AR时,如何切换至设备前置摄像头?
在Unity中使用Vuforia切换到前置摄像头(新版适配方案)
方法一:编辑器可视化设置
- 选中场景中的
AR Camera对象,在Inspector面板找到Vuforia Behaviour组件 - 展开Camera Device折叠项,找到Camera Direction下拉菜单,直接选择
Front - 若选项为灰色,先检查:
- Vuforia配置已正确导入并初始化(Project窗口存在
VuforiaConfiguration资源) - 设备摄像头权限已开启:
- Android:在Player Settings > Publishing Settings中勾选
Camera权限 - iOS:在Player Settings > Other Settings的Info.plist添加
Privacy - Camera Usage Description并填写使用说明
- Android:在Player Settings > Publishing Settings中勾选
- Vuforia配置已正确导入并初始化(Project窗口存在
方法二:代码动态切换(支持运行时切换)
创建一个C#脚本,挂载到AR Camera对象上:
using UnityEngine; using Vuforia; public class FrontCameraSwitcher : MonoBehaviour { void Start() { var cameraDevice = CameraDevice.Instance; // 尝试切换到前置摄像头 bool switchSuccess = cameraDevice.SetCameraDirection(CameraDevice.CameraDirection.FRONT); if (switchSuccess) { Debug.Log("前置摄像头切换成功"); // 可选:开启前置摄像头镜像(符合自拍视觉习惯) cameraDevice.SetMirrorFrontCamera(true); } else { Debug.LogError("切换失败:设备无前置摄像头或权限未获取"); } } // 可选:添加按钮触发前后摄像头切换的方法 public void ToggleCamera() { var cameraDevice = CameraDevice.Instance; CameraDevice.CameraDirection currentDir = cameraDevice.GetCameraDirection(); CameraDevice.CameraDirection targetDir = currentDir == CameraDevice.CameraDirection.FRONT ? CameraDevice.CameraDirection.BACK : CameraDevice.CameraDirection.FRONT; cameraDevice.SetCameraDirection(targetDir); cameraDevice.SetMirrorFrontCamera(targetDir == CameraDevice.CameraDirection.FRONT); } }
常见问题处理
- 切换后画面镜像:在Vuforia Behaviour的Camera Device中勾选
Mirror Front Camera,或通过代码cameraDevice.SetMirrorFrontCamera(true)开启 - 切换失败:确认设备有前置摄像头,且已授予摄像头权限,同时Vuforia版本为最新稳定版
内容的提问来源于stack exchange,提问作者David S J
相关产品推荐
相关产品推荐

