微软混合现实眼镜(HoloLens)

作者:追风剑情 发布于:2021-3-22 17:31 分类:Unity3d

111111.jpg

Hololens的操作系统为 Windows Holographic (全息版)。

[Stack Overflow] HoloLens Questions
HoloLens官网
HoloLens中文网
HoloLens2 WebRTC远程通信
购买HoloLens
Microsoft HoloLens
重启、重置或恢复 HoloLens 2
HoloLens系统内置的语音命令
HoloLens官方开发文档
官方混合现实开发文档
针对 HoloLens 的 Unity 开发
Unity HoloLens 开发调试及部署配置
Unity+MRTK+HoloLens2开发环境配置与部署
HoloLens开发工具安装清单
[GitHub] Microsoft Mixed Reality Toolkit
[GitHub] OpenXR-Unity-MixedReality-Samples
[微软] MRTK 教程
[微软] MRTK 文档
[GitHub] MRTK API 文档
[微软] MRTK API 文档
[微软] Dynamics 365 Guides 概述
[微软] 输入系统概述(Input Overview)
[微软] 世界锁定和空间锚
[微软] 空间感知入门
[微软] 高通引擎(Vuforia Engine)
[微软] QR码跟踪概述
[微软] QR码跟踪API参考
QR码在线生成器

HoloviewLab
基于HoloLens 2的混合现实通讯技术

欢迎使用 MRTK3

[百度网盘] HoloLens 2 开发工具清单:
MixedRealityFeatureTool-1.0.2103.3-Beta.zip (提取码:n9mc)
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.6.1.unitypackage (提取码:o3k9)
Microsoft.MixedReality.Toolkit.Unity.Extensions.2.6.1.unitypackage (提取码:wy1a)
Microsoft.MixedReality.Toolkit.Unity.Examples.2.6.1.unitypackage (提取码:hnfb)
Microsoft.MixedReality.Toolkit.Unity.Tools.2.6.1.unitypackage (提取码:f0hp)
Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.6.1.unitypackage (提取码:uoh9)
MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.4.0.unitypackage (提取码:fdb6)
MRTK源码: MixedRealityToolkit-Unity-2.6.1.zip (提取码:hx4g)
HoloLensEmulatorSetup.exe  (提取码:9bgw)
windowsdesktop-runtime-5.0.4-win-x64.exe (提取码:lmg4)
[官网下载] Windows 10 SDK

一、开发环境配置

1、Windows中设置开发人员模式 (设置->更新和安全->针对开发人员->开发人员模式)
11111.png

使用 Windows 设备门户

2、安装Visual Studio必要组件(需要Visual Studio 2019 16.2或更高版本)
● 使用C++的桌面开发
● 通用Windows平台开发
● USB设备连接性
● Windows 10 SDK
33333.png

3、Windows 10 SDK 版本
官网下载 Windows 10 SDK
要生成 HoloLens 2 应用,必须安装 Windows SDK 内部版本 18362 或更高版本。
D:\Windows Kits\10\SDKManifest.xml
444444.png

4、下载 Microsoft Mixed Reality Toolkit
[百度网盘下载] 源码   (提取码:dpvl)
[百度网盘下载] MixedRealityToolkit.unitypackage  (提取码:9pwu)
[GitHub下载] 源码
[GitHub下载] Microsoft Mixed Reality Toolkit
11111.png
将下载的MixedRealityToolkit.unitypackage直接导入到新工程中使用

用于 Unity 的 MRTK 简介
MRTK 教程简介
GitHub MRTK 文档
MRTK 安装指南

Mixed Reality Feature Tool
也可以通过Microsoft提供的Mixed Reality Feature Tool导入MRTK到Unity工程。
欢迎使用混合现实功能工具
[官方下载] Mixed Reality Feature Tool
[百度网盘下载] Mixed Reality Feature Tool (提取码:umna)
Download .NET 5.0 Runtime

提示
需要 Windows 10 并安装 .NET 5.0 运行时,才能运行混合现实功能工具

111111.png

选择Unity项目工程路径

111111.png

111111.png

点击“详情(Details)”可查看需要的Unity版本和依赖项

22222.png

点击“验证”按钮

33333.png

点击“批准”按钮

4444444.png

333333.png

导入完毕后打开Unity工程进行配置

先交换到 Universal Windows Platform 平台,再配置 Configure Unity Project

2222.png

44444.png

5、Unity设置
● 交换到Universal Windows Platform (UWP)平台
Minimum Platform Version: MRTK 2.6.x 建议选 10.0.18362.0
111111.png

● 安装 XR插件管理(XR Plugin Management) (新版 XR 设置)
111111.png
111111.png

111111.png

33333.png

坑:如果使用新版XR应用无法正常工作,请使用旧版XR,Unity2019.4.x 建议使用旧版XR

● 在XR Settings中勾选上Virtual Reality SDKs (旧版 XR 设置
222222.png

坑:如果勾上 WSA Holographic Remoting Supported ,程序启动时会报错,如图: (Unity 2019.4.19测试)
Exception.cpp
error.png
Unity中的单通道实例化渲染(Single Pass Instanced)使针对每只眼睛的绘制调用缩减为一个实例化绘制调用。 由于两个绘制调用之间的缓存内聚性,GPU 的性能也能得到一定的改善。
Single-Pass Stereo Rendering for HoloLens

建议在“XR Settings”下启用“深度缓冲区共享(Enable Depth Buffer Sharing)”,以优化全息影像稳定性。 但是,在使用此设置的情况下启用基于深度的后期阶段重新投影时,建议选择“16 位深度格式”而不是“24 位深度格式” 。 16 位深度缓冲区可以大幅减少与深度缓冲区流量相关的带宽(以及电量消耗)。 这可能会给节能和性能提升带来很大的好处。 但是,使用 16 位深度格式 可能会造成两种负面影响。

Z 冲突
与 24 位相比,16 位的更低深度范围保真度更容易发生 Z 冲突。 若要避免这种假象,请修改 Unity 相机的近距/远距剪裁平面,以采用更低的精度。 对于基于 HoloLens 的应用程序,50 米(而不是 Unity 的默认 1000 米)的远距剪裁平面通常可以消除任何 Z 冲突。

已禁用模具缓冲区
当 Unity 创建 16 位深度的渲染纹理时,不会创建模具缓冲区。 选择 24 位深度格式后,每个 Unity 文档将创建一个 24 位 Z 缓冲区和一个 [8 位模具缓冲区] (https://docs.unity3d.com/Manual/SL-Stencil.html) (如果 32 位在设备上适用,通常在 HoloLens 等设备上适用)。

● 质量设置勾选 Very Low
Project Settings->Quality
11111.png
● 设置音频空间定位器(MS HRTF Spatializer)
可提高项目中的音频体验。
111111.png

● 配置 “产品名称” 和 “包名”
555555.png

● 配置 Capabilities 和 Supported Device Families
(必选) InternetClient、Microphone、SpatialPerception、GazeInput
网络功能权限:InternetClient、InternetClientServer、PrivateNetworkClientServer 8888.png

坑:还需要在Build出来的VS工程中双击 Package.appxmanifest 文件再次确认所需权限是否都勾选上。

如果要做网络通信功能,需要确保勾上 Internet(客户端)Internet(客户端和服务器)专用网络(客户端和服务器)

11111.png

22222.png

提示
“产品名称”是在 HoloLens“开始”菜单中显示的名称。 要更轻松地在开发期间查找应用,请在名称前面添加一个下划线,以将其排在顶部。

提示
MRTK 的 UI 元素需要 TextMeshPro 基本资源。( Window->TextMeshPro->Import TMP Essential Resources )

6、安装 Hyper-V (HoloLens仿真器需要用到)
使用 HoloLens 仿真器
下载 HoloLens 仿真器
Win+Q 搜索Hyper,选择 启用或关闭Windows功能
11111.png
查看当前Windows版本: 运行->输入winver->回车
111111.png

HoloLens 仿真器系统要求

● 64 位 Windows 10 专业版、企业版或教育版(Windows 10 家庭版不支持 Hyper-V 或 HoloLens 仿真器)
● HoloLens 2 仿真器需要 Windows 10 2018 年 10 月更新版或更高版本
● 64 位 CPU
● 4 核 CPU(或总共有 4 个核心的多个 CPU)
● 8 GB 或更大的 RAM
● 在 BIOS 中,必须支持且启用以下功能:
  ○ 硬件协助的虚拟化
  ○ 二级地址转换 (SLAT)
  ○ 基于硬件的数据执行保护 (DEP)
● GPU 要求:
  ○ DirectX 11.0 或更高版本
  ○ WDDM 1.2 图形驱动程序或更高版本(第 1 代)
  ○ WDDM 2.5 图形驱动程序(HoloLens 2 仿真器)
  ○ 仿真器可与不受支持的 GPU 配合工作,但速度会变慢


针对 Unity 的性能建议

1、避免使用开销大的API

● GameObject.SendMessage()
● GameObject.BroadcastMessage()
● UnityEngine.Object.Find()
● UnityEngine.Object.FindWithTag()
● UnityEngine.Object.FindObjectOfType()
● UnityEngine.Object.FindObjectsOfType()
● UnityEngine.Object.FindGameObjectsWithTag()
● UnityEngine.Object.FindGameObjectsWithTag()
● Component GetComponent(string)
● Camera.main (相当于调用 FindGameObjectsWithTag())
● 删除空回调函数 (例如 void Update(){})
● 避免使用 LINQ

2、取消开销大的处理选项

● 避免使用全屏、抗锯齿、后处理
● 取消实时全局照明(Window->Rendering->Lighting Settings->Realtime Global Illumination)
● 禁用所有阴影投射
● 为“UWP 平台”选择“低质量”
● 碰撞体开销: 球体 < 胶囊 < 箱体 < 网格(凸)< 网格(非凸)
● 注意:在 HoloLens 开发中将对象标记为 Static 会造成问题
使用混合现实工具包中的 MRTK Standard Shader
● 着色器预加载(Project Settings->Graphics->Always Included Shaders)

3、内存优化

● 在Start()或Awake()中缓存组件
● 在运行时使用 StringBuilder C# 类动态生成复杂字符串
● 删除不再需要的 Debug.Log() 调用
● 在适当的时候调用 System.GC.Collect()
● 使用对象池技术

4、加载场景

请考虑使用较小的场景启动应用,然后使用 SceneManager.LoadSceneAsync 加载场景的剩余部分。 这样,应用就可以尽快进入交互状态。 在激活新场景时,可能会出现较大的 CPU 峰值,并且渲染的任何内容可能会出现断连或聚结。 解决此问题的方法之一是,在所要加载的场景中将 AsyncOperation.allowSceneActivation 属性设置为“false”,等待场景加载完成,将屏幕清理为黑屏,然后将此属性重新设置为“true”以完成场景激活。

请记住,在加载启动场景时,会向用户显示全息初始屏幕。

提示
要得到稳定的体验,需要维持 60 FPS

全息影像与用户之间的最佳距离

distanceguiderendering-750px.png
建议:摄像机的近裁剪面设成0.85,远裁剪面设成5
Clear Flags: Solid Color
Background: RGBA(0, 0, 0, 0)
11111.png

二、初始化项目并部署第一个应用程序

初始化项目并部署第一个应用程序

1、新建场景并向场景添加 MixedRealityToolkit 对象

1111.png

2222.png

选择 DefaultHoloLens2ConfigurationProfile

111111.png

(可选) 添加 Tracked Pose Driver 组件

111111.png

2、Build项目 (Build Settings->Build)

44444.png

3、生成并部署应用程序

555.png

如果Visual Studio提示要安装额外组件,一定要点【确定】安装。

将 Universal Windows 工程设为启动项

22222.png

选择“Master”配置或“Release”配置、ARM64 体系结构和“设备”作为目标,配置 Visual Studio for HoloLens

11111.png

注意:使用USB安装请选择“设备”,使用WiFi安装请选择“远程计算机”。

将 HoloLens 连接到计算机,然后选择“调试” > “启动但不调试”,以生成并部署到你的设备 :

4444.png
选择 "调试">"开始调试"
选择 "调试">“开始执行(不调试)” 会自动启动设备上的应用,而不会连接 Visual Studio 调试器。
选择 “生成”>“部署解决方案”,在不自动启动应用的情况下将内容部署到设备。

生成和部署 Unity Visual Studio 解决方案
配置 说明
Debug 禁用所有优化,并启用探查器。 用于调试脚本。
Master
启用所有优化并禁用探查器。 用于将应用提交到应用商店。
MasterWithLTCG 暂不清楚。
Release 启用所有优化,并启用探查器。 用于评估应用程序性能。

重要  
在生成到设备之前,设备必须处于开发人员模式并与开发计算机配对。 这两个步骤都可以按照这些说明来完成。参见
使用 Visual Studio 进行部署和调试
在 Visual Studio 中打包桌面或 UWP 应用

配对设备
首次将应用从 Visual Studio 部署到 HoloLens 时,系统会提示输入 PIN。 在 HoloLens 上启动“设置”应用,转到“更新”>“面向开发人员”并点击“配对”,以生成 PIN。 当 PIN 显示在 HoloLens 上时,请将其键入 Visual Studio。 配对完成后,在 HoloLens 上点击“完成”关闭对话框。 此电脑现已与 HoloLens 配对,你可以自动部署应用。 请针对用于将应用部署到 HoloLens 的每台电脑重复上述步骤。
将 HoloLens 与所有配对的计算机取消配对:
● 启动“设置”应用,转到“更新”>“面向开发人员”,并点击“清除” 。

将 HoloLens 中显示的配对 PIN 码输入到 Visual Studio,完成设备配对:
1111111.png

备注  
在应用中,你可能会注意到诊断探查器,可以使用语音命令“切换诊断”来切换其可见性。 我们建议你在开发过程中使探查器在大部分时间都可见,以便了解何时更改应用可能会影响性能。 例如,HoloLens 应用应以 60 Fps 连续运行
了解混合现实的性能

祝贺
现在,你已经部署了第一个 HoloLens 2 应用。 四处浏览一下,应该会看到空间映射网格覆盖了 HoloLens 感知到的所有表面。 此外,你应该在你的手和手指上看到用于手部跟踪的指示器,以及用于监视应用性能的帧速率计数器。 这些只是 MRTK 附带的几个基础功能。 在接下来的教程中,我们将向场景添加内容,以探索 HoloLens 和 MRTK 的各种功能。



三、安装与部署

☕ 通过 USB 部署

在 HoloLens 中启用 "开发者模式" 和 "设备门户"
"设置" > "更新与安全" > "开发者选项"

编译时如果遇到以下问题:
MSB377 打不到 SDK"WindowsMobile, Version=10.0.19041.0"。
22222.png
原因: 这是因为没安装 Windows 10 SDK,或者 Windows 10 SDK 没安装到C盘导致的。
解决方案一:
在项目中找到 .vcxproj 文件,注释或删除以下内容:

<ItemGroup>
    <SDKReference Include="WindowsMobile, Version=10.0.19041.0" />
</ItemGroup>

解决方案二:如果是因为Windows SDK没安装到C盘导致的,可以创建一个目录连接。
mklink /j "C:\Program Files (x86)\Windows Kits\10" "D:\Windows Kits\10"
22222.png

如果使用的是Visual Studio 2022,编译时可能会报以下错误:
Unity.IL2CPP.Building.BuilderFailedException:Lump_libil2cpp_vm.cpp
11111.png
解决方案:
找到并打开 Build\Il2CppOutputProject\IL2CPP\external\google\sparsehash\internal\sparseconfig.h
#define SPARSEHASH_HASH HASH_NAMESPACE::hash_compare 之前添加以下两行代码:

/* 添加以下两行代码 */
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include <hash_map>

/* The system-provided hash function including the namespace. */
#define SPARSEHASH_HASH  HASH_NAMESPACE::hash_compare

/* The system-provided hash function, in namespace HASH_NAMESPACE. */
#define SPARSEHASH_HASH_NO_NAMESPACE  hash_compare  

技巧:写个批处理将修改好的 sparseconfig.h 文件拷贝到目标位置,避免每次编译后都要修改下 sparseconfig.h 文件。

@echo off
echo f | xcopy sparseconfig.h .\Il2CppOutputProject\IL2CPP\external\google\sparsehash\internal /y
echo fix finished
pause  
备注  
首次将应用从电脑部署到 HoloLens 时,系统会提示输入 PIN

在 HoloLens 的 “设置” > "更新与安全" > "开发者选项" > 点击 "配对" 按钮 (会显示一个配对密码, 将这个密码输入到 Visual Studio 的 PIN 输入对话框中)

1111111.png

注意:一定要在 HoloLens 中关闭 “蓝牙” 功能, 否则会连接不上目标设备(HoloLens),安装时保持HoloLens为非待机状态,有时可能需要重启HoloLens或Visual Studio才能连接上目标设备。如果发现HoloLens无法通过USB数据线连接上电脑,有时重启下电脑可以解决

如果通过USB部署时报以下错:

原因: HoloLens未正确连接上电脑。

如果通过USB部署时报以下错:

原因: 电脑上的其他USB设备冲突。
解决方案:先拔掉其他USB设备,重启电脑后再试。

☕ 通过 WiFi 部署

HoloLens 中查看IP (可在 “设置” > “网络和 Internet” > “高级选项” 下找到 HoloLens 的 IP 地址)
在 Visual Stduio 中设置 HoloLens 的 IP
“项目” > "属性" > "调试" > "计算机名"

33333.png

44444.png

设置好 HoloLens 的 IP 后就可以根据需要生成、安装、部署项目了。

注意 如果 Visual Studio 连不上 HoloLens,检查下HoloLens是否处于待机状态,需要按下电源键唤醒Hololens。如果还是连不上,可以尝试重启下Hololens

将应用部署到 HoloLens 仿真器

[官方下载] HoloLens 仿真器
使用 HoloLens 仿真器

平台要选择 x86 或 x64, 否则目标设备下拉列表中无法选择 HoloLens 2 Emulator 33333.png

在HoloLens模拟器中运行
22222.png

备注  
仿真器在首次启动时,可能需要花费一分钟或更长的时间来完成引导。 建议在调试会话期间让仿真器保持打开状态,以便将应用程序快速部署到仿真器。

基本的仿真器输入

控制仿真器与控制许多常见的 3D 视频游戏相似。 可以通过输入选项来使用键盘、鼠标或 Xbox 控制器。 通过定向佩戴 HoloLens 的模拟用户执行的操作来控制仿真器。 你的操作可在环境中四处移动该模拟用户。 仿真器中运行的应用程序可以像在真实设备上一样做出响应。

HoloLens(第 1 代)上的光标可跟踪头部运动和旋转。 在 HoloLens 2 仿真器中,光标跟踪手部运动和方向。

前后左右走动 - 使用键盘上的 WASD 键,或 Xbox 控制器上的左摇杆。
上下左右注视 - 选择并拖动鼠标、使用键盘上的箭头键,或使用 Xbox 控制器上的右摇杆。
隔空敲击手势 - 单击鼠标右键、按键盘上的 Enter 键,或使用 Xbox 控制器上的 A 按钮。
开花手势/系统手势 - 按键盘上的 Windows 键F2 键,或按 Xbox 控制器上的 B 按钮。
滚动时的手部运动 - 按住 Alt 键鼠标右键的同时向上或向下拖动鼠标。 在 Xbox 控制器中按住右扳机键和 A 按钮的同时向上和向下移动右摇杆。
手部运动和方向(仅适用于 HoloLens 2 仿真器)- 按住 Alt 键的同时向上、向下、向左或向右拖动鼠标以移动手部。 也可以使用箭头键和 Q 或 E 来旋转和倾斜手部。 在 Xbox 控制器中,请在按住左缓冲键或右缓冲键的同时,使用左拇指操纵杆向左、向右、向前和向后移动手部,使用右拇指操纵杆旋转手部。 使用 Dpad 上的向上或向下键来抬高或降低手部。

有 Windows Mixed Reality 沉浸式头戴显示设备? 从 HoloLens 2 仿真器(Windows 全息版 2004)开始,可以使用 Windows Mixed Reality 沉浸式头戴显示设备和运动控制器来控制 HoloLens 2 仿真器,并以立体方式观看它。 请参阅将 Windows Mixed Reality 沉浸式头戴显示设备和运动控制器与 HoloLens 2 仿真器配合使用

[真机] 混合实现交互


四、HoloLens 投屏到电脑

实际开发中发现,某些双频路由器(2.4G+5G),要将路由器的5G频段禁用了才能通过浏览器访问HoloLens。如,TL-AP1900GE-PoE/DC易展版 1.0。

需要在 HoloLens 上开启 设备门户(设置->更新和安全->开发者选项->设备门户)
第一次通过浏览器访问 HoloLens 会让你输入账号/密码。
11111.png

2222.png

投屏方式二
从 Microsoft Store 中下载 Microsoft HoloLens 应用。

关闭接近光
接近光:当光标靠近组件时,会有照亮的视觉反馈。

11111.png

关闭性能分析器
转载 https://blog.csdn.net/Devil_MayCare/article/details/107464895
1111.png
2222.png

//获取性能分析器有没显示
bool showProfiler = (CoreServices.DiagnosticsSystem?.ShowProfiler).GetValueOrDefault(false);
if (showProfiler)
   CoreServices.DiagnosticsSystem.ShowProfiler = false;//关闭  


实时捕获输入源数据

using UnityEngine;
using UnityEngine.XR.WSA.Input;
/// <summary>
/// 飞机跟随手
/// </summary>
public class AirplaneFollowHand : MonoBehaviour
{
    void Start()
    {
        InteractionManager.InteractionSourceUpdated += OnInteractionSourceUpdated;
    }

    private void OnDestroy()
    {
        InteractionManager.InteractionSourceUpdated -= OnInteractionSourceUpdated;
    }

    private void OnInteractionSourceUpdated(InteractionSourceUpdatedEventArgs source)
    {
        //判断输入源
        switch (source.state.source.kind)
        {
            case InteractionSourceKind.Hand:
                Vector3 position;
                //判断是哪只手
                switch (source.state.source.handedness)
                {
                    case InteractionSourceHandedness.Right:
			//获取右手空间坐标
                        if (source.state.sourcePose.TryGetPosition(out position))
                        {
                            
                        }
                        else
                        {
                            
                        }
                        break;
                    case InteractionSourceHandedness.Left:
			//获取左手空间坐标
                        if (source.state.sourcePose.TryGetPosition(out position))
                        {
                            
                        }
                        else
                        {
                            
                        }
                        break;
                    case InteractionSourceHandedness.Unknown:
                        
                        break;
                }
                break;
            case InteractionSourceKind.Controller:

                break;
            case InteractionSourceKind.Voice:

                break;
            case InteractionSourceKind.Other:

                break;
        }
    }
}


注意:Unity 2020.3.8+ 支持使用 OpenXR 开发 Microsoft HoloLens 2


五、Unity 2020.3 LTS + OpenXR 开发 HoloLens (微软推荐)

注意 Unity 2021.1 之后将不再支持 Windows XR 插件。

注意   在 Windows 上创建项目时,MAX_PATH 限制为 255 个字符。 Unity 受到这些限制的影响;如果任何文件路径的长度超过 255 个字符,就可能无法编译。 因此,建议将 Unity 项目存储在尽可能靠近驱动器根目录的位置。

在 Unity Hub 中安装以下模块
Universal Windows Platform Build SupportWindows Build Support (IL2CPP)

Build Settings

Platform: Universal Windows Platform
Target Device: HoloLens
Architecture: ARM64
Build Type: D3D Project
Target SDK Version: Latest installed
Minimum Platform Version: 10.0.10240.0
Visual Studio Version: Latest installed
Build and Run On: USB Device
Build configuration: Release

11111.png

下载并安装混合现实功能工具

Miscsoft 下载中心

注意   在运行混合现实功能工具之前,必须安装 .NET 5.0 运行时

导入混合现实 Toolkit和 OpenXR 包

1. 在混合现实功能工具中,选择“启动”。

1111.png

2. 选择“浏览”按钮(它是下图中的“三个点”按钮),导航到你的项目,然后将其打开。

2222.png

3. 勾选上 Mixed Reality Toolkit Foundation 和 Mixed Reality OpenXR Plugin
建议将 Microsoft Spatializer 也勾上,待MRTK安装完成后,可以在 [Edit]->Project Settings->Audio->Spatializer Plugin 选择 Microsoft Spatializer 选项。
如果需要示例,将 Mixed Reality Toolkit Examples 也勾上。待MRTK安装完成后,在Package Manager的In Project选项中,可以查看到所有导入的包。

4. 勾选上 Mixed Reality Toolkit Tools 后,Unity中 [Mixed Reality] 菜单下会增加很多有用的编辑器工具。
[Mixed Reality]->Toolkit->Utilities
[Mixed Reality]->Toolkit->MSBuild
1111.png

3333.png

4444.png

4444.png

4. 点击【Approve】按钮后,返回 Unity Editor,此时 Unity 将自动执行导入包。

配置 OpenXR 设置

1. MRTK包导入后会自动弹出警告。点击 【Yes】 后会自动重启 Unity Editor

77777.png

2. [Mixed Reality]->[Toolkit]->[Utilities]->[Configure Project for MRTK]



选择 Unity OpenXR plugin (recommended)

为HoloLens 2 配置项目

11111.png


勾选 Initialize XR on Startup
勾选 OpenXR
勾选 Microsoft HoloLens feature group
请注意, OpenXR 旁边有一个黄色警告三角形。 这表示你具有需要解析的不兼容设置。

解析不兼容的设置

1. 将光标悬停在 OpenXR 旁边的黄色警告三角形上将弹出提示信息。点击警告三角形图标将弹出“OpenXR项目验证”窗口。

2. 在"OpenXR Project Validation"窗口中点击【Fix All】

4444.png

5555.png

3. 添加交互配置文件

11111.png
添加以下交互配置:
○ 眼睛注视交互配置文件
○ Microsoft 手势交互配置文件
○ Microsoft 运动控制器配置文件
11111.png
如果添加的交互配置旁边出现了黄色警告图标,点击警告图标,在弹出的"OpenXR Project Validation"窗口中点击【Fix All】即可修复。
11111.png

4. HoloLens 2 完整的配置如图

555555.png

配置播放器设置

22222.png

33333.png

优化(Optimization)

1. 应用HoloLens 2官方建议的项目设置

44444.png

Unity 示例项目

请查看 OpenXR 混合现实示例存储库中的示例 Unity 项目,这些示例项目展示了如何使用混合现实 OpenXR 插件为 HoloLens 2 或混合现实头戴显示设备生成 Unity 应用程序。

导入示例

安装完成 Mixed Reality Toolkit Examples 包后就可以在 Package Manager 中导入示例了

从菜单打开Package Manager: [Mixed Reality]->Toolkit->Utilities->Import Examples from Package (UPM)

配置新的MR场景

【Mixed Reality】->Toolkit->Add to Scene and Configure...
1111.png
下图是一个最基本的MR场景
2222.png

生成与部署

不考虑Visual Studio连接设备调试的话,生成方式选择Release,CPU架构选择ARM64,想利用USB线部署到设备选择设备,想利用Wifi远程部署到设备选择远程计算机
444.png
生成项目,再部署项目。
3333.png

另请参阅

VisualStudio发布Hololens应用程序安装包
Hololens安装与卸载应用
选择 Unity 版本和 XR 插件
在没有 MRTK 的情况下设置新的 OpenXR 项目
将 混合现实 OpenXR 插件添加到现有 Unity 项目
使用 MRTK 设置新的 OpenXR 项目
Unity UWP 应用中的 UDP 数据包
可定位相机
Google ARCore 文档
Apple ARKit 文档

标签: Unity3d

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号