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。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于图数据库构建知识图谱平台应用实践

▏摘要 中信证券基于分布式图数据库StellarDB,替代国外开源图数据库产品,打造全新的企业级知识图谱平台,应用于同一客户集团画像、科创板关联发现、风险事件报告、全球企业关联图谱、产业链图谱、投研图谱、反洗钱与稽核图谱、元数据图谱等应…

提升工作能力的方法

1.接受工作,只问标准 2.请示工作,必带方案; 3.汇报工作,突出成果; 4.分享工作,细说流程; 5.复盘工作,总结SOP 如果能这么做,那将是一个非常通透的高手,所以高…

初探2b blender

总结 按照youtube 教程 做了个雏形 心得 从正面, 侧面 视图整体上调整外轮廓流线型趋向, 比如正面看这个发型像个鸡蛋的外轮廓头发重要的是丝滑, 流畅 集束 层次 交错

git的安装、使用

文章目录 安装gitgit学习网站git初始配置具体配置信息 新建版本库(仓库)git的工作区域和文件状态工作区域文件状态git文件提交的基础指令 git基础指令1. 版本提交2. 分支创建3. 分支切换4. 分支合并(1) git merge(2) git rebase 5. 在git的提交树上移动(…

国内哪个工具可以平替chatgpt?国内有哪些比较好用的大模型gpt?

我自己试用了很多的平台,发现三个比较好的大模型平台,对普通用户也比较的友好的,而且返回内容相对来说,正确率更高的,并且相关场景插件比较丰富的国内厂商。 本文说的,是我自己觉得的,比较有主观…

vue2结合electron开发桌面端应用

一、Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 。允许您保持一个 JavaScript 代码代码库并创建可在Windows、macOS和Linux上运行的跨平台应用 。 Electron 经常与 Ch…

Python3零基础教程之数学运算专题初阶

大家好,我是千与编程,在上一节课程我们讲解了Python3基础课程中的变量与数据专题项目,本章节中涉及的Python3编程语言中的基础的四则运算、赋值运算符号,赋值运算符号,比较运算符号,位运算符号的计算方法。 这一章的内容算是比较基础的部分,最后需要学会使用即可。以下是…

Elasticsearch搜索引擎

目录 初识elasticsearch 了解ES 什么是elasticsearch elasticsearch的发展 搜索引擎技术排名: 总结 倒排索引 正向索引和倒排索引 正向索引 倒排索引 总结 es的一些概念 文档 索引 概念对比 架构 总结 安装es,kibana 安装es 安装kiba…

在网页上踢球:打造我自己的python(Django)足球网站

足球不仅仅是球场上的90分钟。它是一个不断发展的故事,一个全球球迷社群的粘合剂,一个数据和热情交织的世界。作为一名开发者和球迷,我决定将这两大爱好结合起来,用 Django 打造一个足球网站,让球迷们能够追踪他们最爱…

守护无价数据:文件备份的重要性与实用策略

一、数据安全:为何文件备份至关重要 在数字化时代,我们的生活和工作越来越离不开电子设备与其中的文件数据。这些文件可能包含重要的工作文档、珍贵的家庭照片、个人的创意作品等,它们是我们回忆的载体,也是我们工作和创新的基石…

xss.haozi.me靶机练习

目录 第零关: 第一关: 第二关: 第三关: 第四关: 第五关: 第六关: 第七关: 第八关: 第九关: 第十关: 第十一关: 第十二关…

百度SEO快排原理是什么?如何快速排名方法?

前言:我之前说过我不打算写这个快速排序。 首先,我从来没有在自己的网站上操作过所谓的快速排序。 其次,我不能像网上很多人写的那样透露百度快速排序的秘密(说实话,你可以透露秘密)。 方法是有了&#xff…

unity 数学 如何计算线和平面的交点

已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们要知道向量归一化点乘之后得到就是两个向量的夹角的余弦值,如果两个向量相互垂直则值是0,小于0则两个向量的夹角大于90度,大于…

Python3零基础教程之条件控制语句

大家好,我是千与编程,今天我们讲解Python3零基础教程中的If-else条件控制语句,这是Python3语言编程中非常重要的部分,是程序代码有逻辑性和决策性的根本。 尤其针对刷算法题的几乎每一道题都会使用,以下是本次教程内容的思维导图: 一、基本的条件控制语句 在Python 3中…

Jenkins的安装和helloworld Pipeline

文章目录 环境安装下载安装启动初始化 PipelineUISCM(Source Control Management)准备pipeline 参考 环境 RHEL 9.3Jenkins 2.44.0.1 安装 参考 https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos 。 下载安装 [ding192 ~]$ sudo …

2024新算法:鹅算法优化VMD参数,五种适应度函数任意切换,最小包络熵、样本熵、信息熵、排列熵、排列熵/互信息熵...

本期采用鹅算法优化一下VMD参数。利用MATLAB官方自带的VMD函数。 替换为官方自带的VMD函数后,寻优速度真的大幅度提升!数据量大的不妨都试试这个官方的VMD函数。当然要下载2020a以上的MATLAB才可以哦! 同样以西储大学数据集为例,选…

vue 部署后修改配置文件(接口IP)

近期,有一个项目,运维在部署的时候,接口ip还没有确定,而且ip后面的路径一直有变动,导致我这里一天打包至少四五次才行,很麻烦,然后看了下有没有打包后修改配置文件修改接口ip的方法,…

【QT+QGIS跨平台编译】之六十四:【QGIS_CORE跨平台编译】—【错误处理:未定义类型QTemporaryDir - QgsSourceCache】

文章目录 一、未定义类型QTemporaryDir二、解决办法 一、未定义类型QTemporaryDir 报错&#xff1a; 二、解决办法 QgsSourceCache.h文件中 第25行修改为&#xff1a; #include <QTemporaryDir>

深入了解Kafka的文件存储原理

Kafka简介 Kafka最初由Linkedin公司开发的分布式、分区的、多副本的、多订阅者的消息系统。它提供了类似于JMS的特性&#xff0c;但是在设计实现上完全不同&#xff0c;此外它并不是JMS规范的实现。kafka对消息保存是根据Topic进行归类&#xff0c;发送消息者称为Producer&…

FreeRTOS学习笔记——FreeRTOS中断管理

什么是中断&#xff1f; 简介&#xff1a;让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断 例&#xff1a; 中断执行机制&#xff0c;可简单概括为三步&#xff1a; 中断优先级分组设置 ARM Cortex-M 使用了 8 位…