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

news2024/11/18 3:25:00

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.coloradmin.cn/o/1485280.html

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

相关文章

100个百万阅读公众号爆文案例

100个100万公众号爆文案例 自从公众号流量推送修改之后,原来的私域玩法一去不复返,公域公众号正在崛起 现在公众号的玩法就是找爆款,去对标,去学习,努力使自己的公众号进入流量池,然后吃流量主的收益 这里…

【数据结构和算法】根据前序、中序、后序来确定一颗二叉树

目录 0 引言1 确定二叉树结构的方式1.1 前序和中序1.2 后序和中序1.3 前序和后序:无法确定结构 🙋‍♂️ 作者:海码007📜 专栏:计算机四大基础专栏📜 其他章节:网络快速入门系列、计网概述、计网…

Redis-基础篇

Redis是一个开源、高性能、内存键值存储数据库,由 Salvatore Sanfilippo(网名antirez)创建,并在BSD许可下发布。它不仅可以用作缓存系统来加速数据访问,还可以作为持久化的主数据存储系统或消息中间件使用。Redis因其数…

从下一代车规MCU厘清存储器的发展(2)

目录 1.概述 2.MCU大厂的选择 2.1 瑞萨自研STT-MRAM 2.2 ST专注PCM 2.3 英飞凌和台积电联手RRAM 2.4 NXP如何计划eNVM 3.小结 1.概述 上篇文章,我们简述了当前主流的存储器技术,现在我们来讲讲各大MCU大厂的技术选择 2.MCU大厂的选择 瑞萨日…

vue2结合electron开发桌面端应用

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

文献阅读笔记《Spatial-temporal Forecasting for Regions without Observations》13页

目录 目录 目录 发行刊物 ABSTRACT 1 INTRODUCTION 2 RELATED WORK(相关工作 2.1 Spatial-temporal Forecasting(时空预测 2.2 Spatial-temporal Forecasting withIncomplete Data(不完全数据的时空预测 2.3 Graph Contrastive Lear…

什么是Vue指令?请列举一些常见的Vue指令以及它们的用法

Vue.js 是一款流行的前端框架,它的指令(Directives)是 Vue.js 提供的一种特殊属性,用于在模板中对 DOM 元素进行直接操作。指令通常是以 v- 开头的特殊属性,用于响应式地将数据绑定到 DOM 元素上。 在 Vue 中&#xf…

VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试 1. 目的需求2. VS Code 简介3. 使用实践:一个简单的实例3.1 准备工作3.1.1 远程服务器3.1.2 本地…

测试面试精选题:可用性测试主要测试哪些方面,举例说明

1.界面设计: 评估软件的用户界面设计是否直观、美观、易于理解和操作。 测试用例:打开软件,查看界面布局是否合理,各个功能是否容易找到,是否符合用户习惯。 2.导航和布局: 评估用户在软件中导航和查找…

点云数据结构化与体素化理论学习

一、PCD点云数据存储格式的进一步认识 (一)PCD点云存储格式相较于其它存储格式(如PLY、STL、OBJ、X3D等)的优势[1] (1)具有存储和处理有组织的点云数据集的能力,这对于实时应用和增强现实及机器…

【C++】string 类 ( 上)

标准库中的string类 注意: 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。 比特就业课 3. string在底层实际是:basic_string模板类的别名,typedef basi…

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

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

飞天使-学以致用-devops知识点2-安装sonarqube

文章目录 安装sonarqube查看暴露出去的端口 生成服务token创建webhook服务创建项目 安装sonarqube apiVersion: apps/v1 kind: Deployment metadata:name: postgres-sonarnamespace: kube-devops spec:replicas: 1selector:matchLabels:app: postgres-sonartemplate:metadata:…

物联网与智慧城市:科技驱动下的城市智能化升级之路

一、引言 随着科技的不断进步和城市化进程的加速,物联网与智慧城市的结合已经成为推动城市智能化升级的关键力量。物联网技术以其强大的连接和数据处理能力,为智慧城市的建设提供了无限可能。本文旨在探讨物联网如何助力智慧城市的构建,以及…

实例驱动计算机网络

文章目录 计算机网络的层次结构应用层DNSHTTP协议HTTP请求响应过程 运输层TCP协议TCP协议面向连接实现TCP的三次握手连接TCP的四次挥手断开连接 TCP协议可靠性实现TCP的流量控制TCP的拥塞控制TCP的重传机制 UDP协议 网际层IP协议(主机与主机)IP地址的分类…

朱维群将出席用碳不排碳碳中和顶层科技路线设计开发

演讲嘉宾:朱维群 演讲题目:“用碳不排碳”碳中和顶层科技路线设计开发 简介 姓名:朱维群 性别:男 出生日期:1961-09-09 职称:教授 1998年毕业于大连理工大学精细化工国家重点实验室精细化工专业&…

【ArcGIS Pro二次开发】(83):ProWindow和WPF的一些技巧

在ArcGIS Pro二次开发中,SDK提供了一种工具界面【ArcGIS Pro ProWindow】。 关于ProWindow的用法,之前写过一篇基础的教程: 【ArcGIS Pro二次开发】(13):ProWindow的用法_arcgispro二次开发教程-CSDN博客 主要是对几个常用控件…

Codeforces Round 930 (Div. 2 ABCDEF题) 视频讲解

A. Shuffle Party Problem Statement You are given an array a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,an​. Initially, a i i a_ii ai​i for each 1 ≤ i ≤ n 1 \le i \le n 1≤i≤n. The operation swap ( k ) \texttt{swap}(k) swap(k) for an…

Java练习(第5天)【总结】在字符串中寻找特定的字符(5种方法)

问题描述:在字符串中寻找特定字符 1、第1次出现位置 实现函数原型: int indexOf(char c) Java代码: import java.io.*; public class Way_1 {public static void main(String args[]){String str "Geeks for Geeks is a computer s…

智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护)

智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护) 边缘小站的主要功能是管理用户在线下部署的整机柜设施,一个边缘小站关联一个华为云指定的区域和一个用户指定的场地,相关的资源运行状况监控等。 边缘计算 迈入5G和AI时代,新…