【增强现实】快速上手 Vuforia Unity Android AR 应用开发

2 阅读4分钟

准备

  1. Unity 2022.3.62f3c1 长期稳定版本,获取 Unity 时要勾选 Android SDK 以构建运行至 Android 设备,另外 Unity 有简体中文语言包,进入 Unity 任意项目后可以在菜单栏 Edit - Preferences 外观设置的 Languages 项进行调整;
  2. Vuforia Unity SDK 页面的 Download for Unity 得到的 Vuforia Engine 11.4 SDK,获取前要进行邮箱注册和登录;
  3. Vuforia Target Manager 页面点击右上角的 Generate Database,选择 Divice 类别和任意 Name 进行数据库创建,进入数据库页面后点击左侧的 Add Target,选择 Type 为 Image,File 上传任意用于 AR 识别的真实物体照片,Width 设置 4,任意名称,添加后回到数据库页面,勾选刚才添加的 Target,点击右侧的 Download Database,选择适用平台为 Unity Editor 进行下载,最后我们会得到 unitypackage 后缀的识别包文件;
  4. Sketchfab 模型下载页面获取任意 3D 模型,选择 GLB 格式,获得放置在识别图片上的模型资源。

步骤

  1. 启动 Unity 2022,创建 3D (Built-In Render Pipeline) 项目。
  2. 点击菜单栏的 Assets - Import Package - Custom Package,将准备的 Vuforia Engine 11.4 SDK 文件导入项目,导入后会有如图所示的提示框,我们点击 Update,注意单次操作可能不会将 SDK 完整导入,我们进行多次操作直到出现如图所示的 Nothing to import 弹窗。

  1. 导入后可能会出现如图所示的提示框,这里我们点击 Yes,等待项目重启。

  1. 项目重启后,我们点击菜单栏 Edit - Project Settings 的 Player 项,找到 Active Input Handling,选择 Input System Package (New) 取代原设置的 Both,再次等待项目重启。

  1. 点击菜单栏的 File - Build Settings,在设置页面首先点击 Add Open Scenes,再点击 Android - Switch Platform 切换移动开发平台。

  1. 点击菜单栏 Window - Vuforia Configuration 触发的右侧 Inspector 栏 Add License 项以配置密钥。跳转到 Vuforia 网页后点击居中的 Generate Basic License,配置任意 License Name 回到主页面后点击刚才配置的 License,点击复制灰色部分密钥填入如图所示的 App License Key 项。

  1. 回到主页面,删除 Hierarchy 的 Main Camera,增加 Vuforia Engine - ARCarema 和 ImageTarget,选中 ImageTarget,在 ImageTarget 下方 Create Empty 创建空物体 GameObject。

  1. 点击菜单栏的 Edit - Project Settings - Player,展开 Android 设置的 Other Settings 选项,将 Minimum API Level 改成 Android 10.0 (API Level 29),Scripting Backend 设置 IL2CPP,Api Compatibility Level* 设置 .NET Framework,Target Archiectures 仅勾选 ARM64。
  2. 再次点击菜单栏的 Assets - Import Package - Custom Package,将准备的识别模型 unitypackage 导入,点击 Image Target,在右侧 Inspector - Type 选择 From Database,下方会出现 Database 和 Image Target 两个选项,选择 Database 的我们在 Vuforia 创建的识别图名称。此时 Scene 会出现准备的识别图片样式。

  1. 点击下方 Project,选择 Assets - Resources,将准备的放置模型文件夹完整拖到此处,选中其中模型样式的文件,在右侧 Inspector - Materials 设置下点击 Materials 的 Extract Materials,此时会弹出保存地址页面,直接点击选择文件夹即可。以人体模型为例,操作后的画面如图所示。

  1. 点击各球样式的模型,在右侧 Inspector 可以看到 Main Maps - Apbedo 选项,将模型文件夹的图片素材拖动到对应名称球模型 Albedo 右侧方框中,拖动所有图片后,将非球模型拖动到 Scene 场景内的 Image Target 上方。得到的结果如图所示。

  1. 将左侧 Hierarchy 显示的模型文件拖动到 GameObject 下方,若 Hierarchy 的 SampleScene 右侧有 * 标识则表示未保存,此时要按下 Ctrl + S 保存。保存后点击菜单栏的 File - Build Settings,将开启开发者模式和 USB 调试的 Android 设备用调试线连接电脑,查看 Build Settings 的 RunDevice 项,选中 Android 设备,若没有则尝试其右侧的 Refresh 按钮或重新插拔调试线,最后点击 Build And Run,Unity 会首先让我们保存 AR 应用的安装包 APK 文件,最后会在调试设备上运行。不出意外的话,此时简单的 AR 模型识别和放置的应用就完成了,应用会安装在我们的调试设备上。