Hololens 2应用开发系列(1)——使用MRTK在Unity中设置混合现实场景并进行程序模拟

Hololens 2应用开发系列(1)------使用MRTK在Unity中进行程序模拟

一、前言

在前面的文章中,我介绍了Hololens 2开发环境搭建和项目生成部署等相关内容,使我们能生成一个简单HoloLens2应用程序。而上述程序是一个静态的程序,要实现Hololen2的交互功能,则需要我们在Unity中导入混合现实场景。

同时,对于我们编写的程序,要验证AR交互功能(如手势动作、眼动追踪等),如果我们每次新增功能都将其编译并发布到设备上进行调试,无疑会增加繁重的工作量并浪费大量的时间,因此,微软官方在MRTK中为我们提供了Unity编辑器内输入模拟的功能,使我们仅仅通过键盘或鼠标便可模拟使用者的手势操作、眼动追踪等功能。

下面,我将对以上内容进行介绍。除此之外,您还可以参考微软官方提供的教程进行补充学习,分别是MRTK2输入模拟MRTK3输入模拟,现在,让我们开始吧。

二、创建和设置MR场景

首先,要创建和设置MR场景,需在Unity编辑器的菜单栏中,找到Mixed RealityToolkitAdd to Scene and Configure 并点击,编辑器左侧(默认)的hierarchy中会出现MixedRealityToolkitMixedRealityPlayspaceMixedRealitySceneContent 三个对象,同时点击或选中MixedRealityToolkit 对象后,编辑器右侧(默认)的Inspector检查器中会自动添加MixedRealityToolkit 的配置窗口。

MixedRealityToolkit 对象右侧的配置窗口中,选择DefaultHoloLens2ConfigurationProfile ,以对应到Hololens 2的主配置文件,

注意下方弹出的提示,"The Mixed Reality Toolkit's core SDK profiles can be used to get up an running quickly. You can use the default profiles provided, copy and customize the default profiles, or create your own.",意思是我们的配置文件还没有被应用,可以选择使用默认配置或创建我们自己的配置,在此,可根据项目需求进行选择,以使用默认配置为例,在此我们点击Copy & Customize

在弹出的窗口中,根据需求修改高级选项,同时可设置配置文件的地址和文件名,然后点击Clone

此时,我们见到下方的设置面板中已不再是灰白,且能够对相机、输入系统、空间感知等部分进行设置。但注意,几乎每一个标签页面,都具有Clone this default profile to edit properties below ,此时,我们尽量选择包含Hololens2 关键字的配置文件,然后点击上方最右侧的Clone 按钮,便可进行后续具体内容的设置。

对于这些设置的具体介绍,我们可以参考微软官方的配置指南,在以后的项目中,我会逐步对其进行使用和介绍。

三、MRTK输入模拟的开启

微软官方在MRTK中为我们提供了Unity编辑器内输入模拟的功能,使我们仅仅通过键盘或鼠标便可模拟使用者的手势操作、眼动追踪等功能。该部分功能的设置在MixedRealityToolkit 对象右侧的配置窗口中,如下图所示。

同时,请注意,微软官方有如下使用提示:MRTK模拟与Unity提供的的XR全息模拟的功能不兼容。为了使用 MRTK 输入模拟服务,需要将XR全息模拟的模拟模式设置为"无"。具体做法为在Unity编辑器的菜单栏中,找到Window 选项,并选择XR ->Holographic Emulation 。在弹出的菜单中,将Emulation Mode 属性设置为None ,图可参考该篇文章,但同时可注意到,上述选项被标注为Deprecated ,在新版的Unity中已找不到该选项,默认无需设置即可直接使用MRTK模拟。

在Unity编辑器中点击播放▶按键后,可跳转到Game界面,此时我们可以操纵鼠标键盘进行模拟仿真。MRTK输入模拟为我们提供了如下操作方式,具体参见官方教程。

操作 按键
移动摄像头 W、A、S、D、Q、E
模拟双手 空格键(右手)、左 Shift 键(左手)
以将模拟的双手保持在视野中 T 或 Y
旋转模拟手部 按住 Ctrl 键并移动鼠标

除此之外,对于手部的显示及控制,暂时还存在一些问题,如需设置请参考微软官方提供的详情网站链接1链接2

相关推荐
scott.cgi2 小时前
Unity使用AndroidX获取,导航栏与虚拟键盘的高度
unity·androidx·keyboard·导航栏高度·虚拟键盘高度·判断键盘关闭·获取虚拟键盘高度
丁小未4 小时前
Unity车机地图Tile流式渲染系统高性能架构方案
unity·架构·ecs·dots·车机系统·车机系统架构图
LONGZETECH8 小时前
工业实训仿真设计实践:电机拆装软件的 DAG 流程建模、工具精度分级与数据体系搭建
大数据·算法·unity·架构·汽车
派葛穆1 天前
Unity-UI 按钮点击弹窗功能
unity·游戏引擎
toponad1 天前
Unity Ads Bidding 现已正式加入TopOn 聚合平台
unity·topon
unityのkiven1 天前
Unity UGUI 实战:动态生成任务面板
unity·游戏引擎
郝学胜-神的一滴1 天前
中级OpenGL教程 026:Assimp库从编译到实战全攻略
c++·unity·游戏引擎·图形渲染·unreal engine·opengl
凯尔3152 天前
Unity简单涂料实现
unity·游戏引擎·图形渲染
刘步权2 天前
KY-RTI分布仿真技术:第十三章 基于Unity的多语言三维态势仿真——以 Island Assault(夺岛突击)想定为例
unity·游戏引擎·仿真·态势·ky-rti·hla·rti
ellis19702 天前
C#/Unity清理非托管资源
unity·c#