Vuforia入门学习笔记 —— VirtualButton功能的实现
功能描述
使用 Vuforia 提供的 Prefab:ARCamera,VirtualButton 和 ImageTarget 实现在识别图上按下(释放)虚拟的 Button 显示(隐藏)识别物的功能。
开发环境
Win10 平台下的 Unity 5.4.3f1 + vuforia-unity-6-2-10。
操作步骤
1.下载Vuforia插件
下载 Vuforia SDK (需要先注册账号并登录)
2.导入Vuforia SDK
将下载好的 Vuforia SDK 导入到 Unity 编辑器。
3.搭建Hierarchy面板
将 Unity 编辑器的 Hierarchy 面板中默认的 Main Camera 删除,从 Project 面板中的 Assets/Vuforia/Prefabs 的路径下分别找到 AR Camera,ImageTarget,VirtualButton 三个 Prefab,然后将它们分别拖到 Hierarchy 面板中。并将 VirtualButton 作为 ImageTarget 的子物体,接着再创建一个 Cube 和一个 Sphere 作为 ImageTarget 的子物体,Cube 和 Sphere 用作 AR Camera 追踪到识别图后所显示的识别物。
4.参数设置
设置App License Key
首先,进入官网获取App License Key 在 Hierarchy 面板中的 AR Camera 游戏对象的 Inspector 中找到 VuforiaBehaviour 脚本,单击 Open Vuforia Configuration 按钮进入设置界面,将从官网获取到的 App License Key 填入相应的选项中。
设置Datasets
首先,进入官网设置并获取关于识别图的 Database 文件将从官网获取到的识别图 Database 文件导入到 Unity 中,在 Hierarchy 面板中的 AR Camera 游戏对象的 Inspector 中找到 VuforiaBehaviour 脚本,单击 Open Vuforia Configuration 按钮进入设置界面,** Datasets 参数下的两个选项,以此来加载并** Database 文件。
设置ImageTarget
打开 ImageTarget 的 Inspector 面板,找到 ImageTargetBehaviour 组件,开始设置其中的参数,即关联导入 Unity 中的 Database 文件。
设置VirtualButton
打开 VirtualButton 的 Inspector 面板,找到 VirtualButtonBehaviour 组件,设置其中的参数:
5.编写脚本
一共需要编写两个脚本:ARCameraAutoFouscing.cs,VirtualButtonControl.cs。
ARCameraAutoFouscing.cs脚本
ARCameraAutoFouscing.cs 脚本实现了摄像头的自动对焦功能,解决了摄像头模糊的问题。
这里主要使用了 CameraDecice 的 SetFocusMode(FocusMode mode) 方法来实现摄像头的对焦模式。最后将 ARCameraAutoFouscing.cs 脚本拖给 AR Camera 游戏物体。
VirtualButtonControl.cs脚本
VirtualButtonControl.cs 脚本实现了 VirtualButton 的控制功能:按下时显示物体,释放时隐藏物体;
这里主要实现了:用一个数组来获取所有的 VirtualButton 对象,为了能够检测到 VirtualButton 对象的状态变化,还要逐个对其进行注册事件处理程序。
VirtualButtonControl.cs 脚本继承了接口:IVirtualButtonEventHandler 此接口主要用来处理 VirtualButton 的状态变化。
-
VirtualButton 按下时显示物体
VirtualButton 释放时隐藏物体
最后将 VirtualButtonControl.cs 脚本拖给 ImageTarget 游戏物体。
测试
最后将项目打包成 apk 文件安装到 Android 平台进行测试。
结束语
通过这个小 Demo ,学习了 AR 自动对焦和 VirtualButton 功能的实现。
参考书目:《AR与VR开发实战》