Unity+Vuforia+Hololens2 AR开发

接触了一个使用HoloLens在Unity中开发一个AR程序的项目。网上的教程很乱,在这里整合一下官方以及各博客的教程。

本文包括环境的安装和配置,一个demo的实现及在HoloLens2上的部署过程。
本文主要参考了以下教程
微软官方
安装工具
MRTK初学者教程.
Vuforia官方
Getting Started with Vuforia Engine in Unity
Working with the HoloLens Sample in Unity
CSDN博文
HoloLens2三种工程部署方式
HoloLens2 + Vuforia图片识别

工具安装

1.Unity3D
微软官方推荐Unity 2020.3LTS版本(见链接)
通过UnityHub安装,注意需要添加下图中的两个模块。
Unity+Vuforia+Hololens2 AR开发_第1张图片
2.VS2019
下载链接
3.Windows10 SDK
可在VS中自动检测安装。
手动安装链接
4.HoloLens2 仿真器(可选)
下载链接
5.Mixed Reality Feature Tool
下载链接
MR功能工具官方使用文档

项目设置

1.在unity中创建新项目

2.打开File-Build Settings 选择UWP,点击Switch Platform

Unity+Vuforia+Hololens2 AR开发_第2张图片

3.上图左下角的位置,打开Player Settings,选择XR Plugin Management

Unity+Vuforia+Hololens2 AR开发_第3张图片
点击安装XR Plugin Management。
本文使用Windows XR插件进行配置。启用Windows Mixed Reality选项。确保启动时初始化XR选项被勾选。
Unity+Vuforia+Hololens2 AR开发_第4张图片

4.打开MixedRealityFeatureTool程序

Unity+Vuforia+Hololens2 AR开发_第5张图片
点击Start
Unity+Vuforia+Hololens2 AR开发_第6张图片
选择项目路径
Unity+Vuforia+Hololens2 AR开发_第7张图片
点击Discover Features
Unity+Vuforia+Hololens2 AR开发_第8张图片
根据需要选择要导入工程的MRTK包。点击Get Features。
(2021/7/7 导入2.7.1版本失败,可导入2.7.0版本)
Unity+Vuforia+Hololens2 AR开发_第9张图片
Unity+Vuforia+Hololens2 AR开发_第10张图片

5.在Unity完成上一步的导入包操作后,会自动显示MRTK项目配置管理器,也可手动在窗口栏中的Mixed Reality中找到。

首先XR 管线 设置,已经在之前的步骤中选择了Windows XR,非OpenVR,此处点击next
Unity+Vuforia+Hololens2 AR开发_第11张图片
这里根据需要进行设置。此处按照默认设置。其中Audio spatializer 下拉列表中选择MS HRTF Spatializer。单击应用按钮。

Unity+Vuforia+Hololens2 AR开发_第12张图片
点击Next
Unity+Vuforia+Hololens2 AR开发_第13张图片
这里可选择导入TMP 基本资源。(官方教程一开始就导入,MRTK 的 UI 元素需要 TextMeshPro 基本资源。 如果你不打算在项目中使用 MRTK 的 UI 元素,则可以跳过此步骤。)
Unity+Vuforia+Hololens2 AR开发_第14张图片
可在Package Manager中选择导入examples
Unity+Vuforia+Hololens2 AR开发_第15张图片

6 Vuforia导入

从官网下载用于Unity的unitypackage文件
将其导入工程
Unity+Vuforia+Hololens2 AR开发_第16张图片
选择Update,(需要安装Git,且下载很慢,网上有直接下载Vuforia package并复制到Packages文件夹下的教程)
Unity+Vuforia+Hololens2 AR开发_第17张图片
窗口栏GameObject下拉选项中出现Vuforia Engine,说明导入成功。

Vuforia AR 设置

Vuforia License Key获取

登录Vuforia 官网注册账号,选择Develop一项,选择License Manager,点击Get Development Key
Unity+Vuforia+Hololens2 AR开发_第18张图片
点击Confirm,然后点进去,复制好license key
Unity+Vuforia+Hololens2 AR开发_第19张图片

创建识别目标

在Targer Manager选项下,点击Add Database即可创建要识别目标的数据库。可创建两种类型的数据库:Device,VuMark。VuMark是一种Vuforia提供的类似二维码的识别数据。详细的信息可参考网上。
Unity+Vuforia+Hololens2 AR开发_第20张图片
点进去创建好的数据库,现在可添加要识别的目标了。关于目标的选择在网上有很多案例及教程。
以单张图片为例,选好图片,设置Width(设置为1),命名。
其中Width的设置会产生什么效果还不知道。
Unity+Vuforia+Hololens2 AR开发_第21张图片
上传后,会给出图片评分。会根据不同图片好坏给出不同评分。(B站BV134411s725 有讲)如下图为五星评分。
Unity+Vuforia+Hololens2 AR开发_第22张图片
点击上图中Download Database,下载图片数据库。

创建场景并配置

1.在Unity中新建场景并保存。

2.添加MRTK

在菜单中,选择“Mixed Reality” >,“Add to Scene and Configure",将 MRTK 添加到当前场景 :
Unity+Vuforia+Hololens2 AR开发_第23张图片

3. 配置MRTK配置文件

MRTK 配置文件是一个嵌套配置文件树,它们构成了应如何初始化 MRTK 系统和功能的配置信息。 顶级配置文件(即“配置”配置文件)包含每个主要核心系统的嵌套配置文件。 每个嵌套的配置文件都设计为配置其对应系统的行为。官网示例
如上图所示,在Hierarchy中选中MixedRealityToolkit,在右侧的Inspector中显示了其配置文件。默认提供了几种配置文件,保持默认设置不变,点击clone得到可编辑副本。对于其中每一项的配置,若要自定义配置,都需要进行clone操作
Unity+Vuforia+Hololens2 AR开发_第24张图片

4. 添加Vuforia

在MixedRealityPlayspace下找到主摄像机,向其添加Vuforia Behaviour.cs组件
Unity+Vuforia+Hololens2 AR开发_第25张图片
打开Vuforia Engine 配置
Unity+Vuforia+Hololens2 AR开发_第26张图片
复制之前的license key到App License Key中,点击Add License
导入之前下载好的database,Database下会自动出现导入的Database。
Unity+Vuforia+Hololens2 AR开发_第27张图片

5. 编辑场景

选择GameObject->Vuforia Engine->Image Target
ImageTarget被添加到场景中,在Inspector面板Image Target Behaviour脚本中选择type为from database
,选择要用到的databse及图片目标。场景中出现对应的图片目标。
Unity+Vuforia+Hololens2 AR开发_第28张图片
在该脚本的高级选项中可设置其width和height
Unity+Vuforia+Hololens2 AR开发_第29张图片
创建cube,将其设置为Image Target子物体,调整其比例位置。
Unity+Vuforia+Hololens2 AR开发_第30张图片
此时最基本的使用HoloLens+Vuforia识别图片,并出现物体的demo完成。

工程的Build及部署

bulid前的设置

1 Project Settings中,Windows XR Reality中的Depth Buffer Foramt设置为16位(可以根据需要决定是否将深度格式减小为 16 位,如果减小,可提高项目中的图形性能。 若要了解有关此主题的更多信息,可以参考 MRTK 的性能文档的深度缓冲区共享 (HoloLens) 部分。)

Unity+Vuforia+Hololens2 AR开发_第31张图片

2 Player选项

1.在Resolution and Presentation中,取消勾选Run In Background(Vuforia 教程Disable Run in Background so that Vuforia pauses when the app is put into the background and can access the camera again when the app is resumed.)
在Default Orientation 中设置为Landscape Left
此项设置为默认横屏。
Unity+Vuforia+Hololens2 AR开发_第32张图片
2.在Publish Settings中,编辑Package name。在Capabilities中,确保 Internet Client, WebCam, Microphone, and SpatialPerception 被勾选。在Support Device Families下,确保Holographic被选择。

Build设置

目标设备选择为HoloLens
架构选择为ARM64(HoloLens2)
Build and Run此处选择为远程连接
Build配置为release
填写HoloLens2设备的ip,用户名及密码
点击Build
Unity+Vuforia+Hololens2 AR开发_第33张图片
新建App文件夹,存放Build后的工程文件。

工程部署

打开App文件夹下的VS工程
配置为Release模式,选择ARM64,远程计算机,项目属性中调试一项输入远程计算机ip地址同上。开始调试,等待工程部署(电脑及HoloLens2都需要打开开发者选项)
Unity+Vuforia+Hololens2 AR开发_第34张图片
Unity+Vuforia+Hololens2 AR开发_第35张图片
Unity+Vuforia+Hololens2 AR开发_第36张图片
部署完毕后,即可在HoloLens眼镜中识别目标图片生成立方体。

你可能感兴趣的:(unity,虚拟现实)