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

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

  • 一、前言
  • 二、创建和设置MR场景
  • 三、MRTK输入模拟的开启

一、前言

在前面的文章中,我介绍了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。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 写入格式化文本文件

目录 一、save函数 二、fprintf函数 matlab 写入文本文件可以使用save和fprintf函数 save输出结果: fprintf输出结果: 1.23, 2.34, 3.45 4.56, 5.67, 6.78 7.89, 8.90, 9.01 可以看出fprintf输出结果更加人性化,符合要求,下面分别介绍。 一、save函数 …

MQL5-MT5连接上国内期货

主要原因是昨天在学习MACD时发现给的基础代码感觉不对,但无法证明,因为MT5接的都是外汇交易,数据和国内的文华啥的全对不上,便找了一些国内接CTP的,直接写代码有点麻烦,虽然之前对接过国内CTP的东西&#x…

AI入门笔记(三)

神经网络是如何工作的 神经网络又是如何工作的呢?我们用一个例子来解释。我们看下面这张图片,我们要识别出这些图片都是0并不难,要怎么交给计算机,让计算机和我们得出同样的结果?难点就在于模式识别的答案不标准&…

十二、Nacos源码系列:Nacos配置中心原理(四)- RefreshEvent 事件处理

前面文章,我们说到回调监听器的方法中,主要就是发布了一个RefreshEvent事件,这个事件主要由 SpringCloud 相关类来处理。今天我们继续分析后续的流程。 RefreshEvent 事件会由 RefreshEventListener 来处理,该 listener 含有一个 …

武器大师——操作符详解(下)

目录 六、单目操作符 七、逗号表达式 八、下标引用以及函数调用 8.1.下标引用 8.2.函数调用 九、结构体 9.1.结构体 9.1.1结构的声明 9.1.2结构体的定义和初始化 9.2.结构成员访问操作符 9.2.1直接访问 9.2.2间接访问 十、操作符的属性 10.1.优先性 10.2.结合性 …

sql基本语法+实验实践

sql语法 注释: 单行 --注释内容# 注释内容多行 /* 注释内容 */数据定义语言DDL 查询所有数据库 show databases;注意是databases而不是database。 查询当前数据库 select database();创建数据库 create database [if not exists] 数据库名 [default charset 字符…

备战蓝桥杯Day22 - 计数排序

计数排序问题描述 对列表进行排序,已知列表中的数范围都在0-100之间。设计时间复杂度为O(n)的算法。 比如列表中有一串数字,2 5 3 1 6 3 2 1 ,需要将他们按照从小到大的次序排列,得到1 1 2 2 3 3 5 6 的结果。那么此时计数排序是…

Jetson Xavier NX 开发板Ubuntu18.04 安装arduino IDE详细步骤

Jetson 平台是arch架构,官网上面几乎都是x86或者arm64的这两种错误版本都存在匹配问题无法使用,不要下载不要下载! uname -a #版本查询1.正确下载打开方式 https://downloads.arduino.cc/arduino-1.8.19-linuxaarch64.tar.xz选择自己想要下…

LeetCode #104 二叉树的最大深度

104. 二叉树的最大深度 题目 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,null,2] 输出:2 分析 …

【Godot4自学手册】第十九节敌人的血量显示及掉血特效

这一节,我主要学习敌人的血量显示、掉血显示和死亡效果。敌人的血量显示和主人公的血量显示有所不同,主要是在敌人头顶有个红色的血条,受到攻击敌人的血条会减少,并且有掉血数量的文字显示,效果如下: 一、…

基于springboot+vue的医院后台管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

SMBGhost漏洞技术分析与防御方案

事件分析 最近国内外各安全厂商都发布了SMBGhost(CVE-2020-0796)漏洞的预警报告和分析报告,笔者利用周末休息时间也研究了一下,就算是做一个笔记了,分享给大家一起学习下,目前外面研究的POC大部分是通过SMB压缩数据包长度整数溢出…

如何根据玩家数量和游戏需求选择最合适的服务器配置?

根据玩家数量和游戏需求选择最合适的服务器配置,首先需要考虑游戏的类型、玩家数量、预计的在线时间以及对内存和CPU性能的需求综合考虑。对于大型多人在线游戏,如MMORPG或MOBA等,由于需要更多的CPU核心数来支持更复杂的游戏逻辑和处理大量数…

操作系统|概述|系统分类——笔记

1.1_1操作系统的概念和功能 操作系统的概念 操作系统(Operating System, OS) 是指控制和管理整个计算机系统的 硬件和软件 资源,并合理地组织调度计算机和工作和资源的分配; 1操作系统是系统资源的管理者 以提供给用…

文件的顺序读写函数举例介绍

目录 例1:(使用字符输出函数fputc)例2:(使用字符输入函数fgetc)例3:(使用文本行输出函数fputs )例4:(使用文本行输入函数fgets )例5&a…

Docker基础教程 - 2 Docker安装

更好的阅读体验:点这里 ( www.doubibiji.com ) 2 Docker安装 Docker 的官网地址:https://www.docker.com/,在官网可以找到 Docker Engine 的安装步骤。 下面进行 Docker 环境的安装,正常情况下 Docker …

服务发现:CP or AP?

1 服务发现的意义 为高可用,生产环境中服务提供方都以集群对外提供服务,集群里这些IP随时可能变化,也需要用一本“通信录”及时获取对应服务节点,这获取过程即“服务发现”。 对服务调用方和服务提供方,其契约就是接…

(3)(3.1) FlightDeck FrSky发射器应用程序

文章目录 前言 1 概述 2 Turnkey Packages 3 参数说明 前言 ​Craft and Theory 的 FlightDeck 可让你轻松查看飞行模式、高度、速度、姿态和关键系统警报,包括故障保护和电池错误,如电池不平衡警告和发射机低电量警报。 1 概述 Craft and Theory 的…

【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)

文章目录 一、前言二、正则表达式与Python中的实现1.字符串构造2. 字符串截取3. 字符串格式化输出3.1 %符号格式化字符串1. 一般形式2. 常用格式字符3. 最小宽度和精度4. 进位制和科学计数法5. 多个对象的格式化输出6. 典例 3.2 format()方法格式化字符串1. 一般形式2. 参数传递…

51单片机-(中断系统)

51单片机-(中断系统) 了解51单片机中断系统、中断源、中断响应条件和优先级等,通过外部中断0实现按键控制LED亮灭为例理解中断工作原理和编程实现过程。 1.中断系统结构 89C51/52的中断系统有5个中断源 ,2个优先级,…