【MRTK】HoloLens开发基础项目设置
前言
好记性不如烂笔头,之前做项目的时候很熟练很顺手就没有写笔记。因为排期问题项目中断几个月之后需要重新拾起来,结果发现自己现在忘记得差不多了,于是还是决定写点东西记录一下。即便是简单的项目设置,忘记的时候也还是很痛苦啊。QAQ
1 版本信息
Unity 版本:2022.1.18f1c1
Visual Studio 版本:Visual Studio Community 2022
2 开发流程
2.1 新建项目
一切的最初是新建一个 3D 项目,就起名为 MRTK Learn 好了!

注意:Unity 受到 Windows 最大路径长度的影响,如果文件路径的长度超过 255 个字符,可能会出现无法编译的情况。因此,建议将本项目存储在尽可能靠近驱动器根目录的位置
2.2 导入 & 配置资源
在这里,我们需要使用混合现实工具来为 Unity 项目导入所需的包,这里放上工具的下载连接
https://www.microsoft.com/en-us/download/details.aspx?id=102778

注意:需要安装.NET 5.0 运行时才能运行混合显示工具(在 VS 中可以安装)
下载完成之后双击打开工具

需要略微等待一段时间,随后点击 Start 以启动工具

选择自己的项目路径(这个地址要找到 Assets 文件夹),随后点击 Discover Feature 进行下一步

需要选择以下工具包,然后点击 Get Features 验证选择


点击 Validate 以验证所选的包及导入路径是否正确

如果系统返回“未检测到任何问题”,点击“确定”,然后“导入”

选择 Approve 将所需的包导入到项目中

最后点击 Exit 关闭导入工具

2.3 配置 Unity 项目
当所需的包导入 Unity 之后,选择 Yes 重启 Unity,以便为新的输入系统启用后端

Unity 重启后会显示 MRTK 项目配置器。如果未显示,可通过导航栏 Mixed Reality > Toolkit > Utilities > Configure Project for MRTK 手动打开配置器

点击,打开 Project Settings

选择使用 OpenXR,并为 OpenXR 选项进行设置




设置完成后打开错误提示,点击 Fix All

应用 MRTK 的自动设置


导入 TextMeshPro 相关的包

设置完成后关闭配置器

随后需要进行用户设置,填写自己的组织(公司)名称和产品名称。产品名称就是应用在 HoloLens 菜单中显示的名称(在名称前面添加一个下划线可以让该应用排在所有应用前面,方便开发期间查找)

填写包名

注意:包名是应用的唯一识别码,重复部署相同包名的应用是会覆盖安装的!!!如果需要保留多个版本,要记得修改包名
2.4 创建场景并配置 MRTK
为测试场景添加 MRTK 工具

添加完成后如下所示

2.5 使用对象操控程序添加手部交互
新建一个 Cube 并调整位置和大小,并为 Cube 添加所需的脚本

- Unity 的单位为 1 米,如果使用默认缩放 (1,1,1),则立方体过大,在这里将立方体的大小调整为 10*10*10 cm
- 世界原点 (0,0,0) 处为相机位置,就是用户眼睛所在的位置,如果将立方体生成在与眼睛相同的位置上,那么用户带上头显之后必须向后移动才能看到这个立方体
- 若想要使用手进行交互并抓取物体,则该物体必须具备的条件是:
- 拥有 Collider 碰撞器组件
- 拥有 Object Manipulator 脚本(添加此脚本时,系统会自动添加 Constraint Manager 脚本,该脚本是 Object Manipulator 依赖的脚本)
- 拥有 NearInteractionGrabbable 脚本
- Object Manipulator 脚本能够让物体变得可移动、缩放、旋转,用户可以通过一只手或两只手来完成这些操作
- NearInteractionGrabbable 脚本让用户能够直接用手接触全息影像
2.6 进行测试
点击 Play 进行测试

在 Unity 编辑器内的输入模拟方法如下:
- 更改场景中的视图
- 若要水平移动相机,按 W/A/S/D 键
- 若要垂直移动相机,按 Q/E 键
- 若要旋转相机,按住鼠标右键拖动
- 模拟手的输入
- 若要模拟右手,按住空格键;松开则移除该手
- 若要模拟左手,按住左 Shift 键;松开则移除该手
- 若要在场景中移动手,只需移动鼠标
- 若要模拟抓取,单击鼠标左键
- 若要旋转手,按住空格键 + CTRL 键(右手)或按住左 Shift + CTRL 键(左手),然后移动鼠标
- 固定某只手
- 若要保持某只手持续出现(即在编辑器中模拟双手交互的情况),按下 T(左手)或 Y(右手)即可,再次按键则移除该手
2.7 生成 Unity 项目
打开 Build Settings,将示例场景添加到 Scene In Build 中,更换发布平台为 UWP 并调整对应的参数设置

修改 Build Settings 中的设置:
- 将“Architecture(体系结构)”设置为“ARM 64-bit”
- 将“Build Type(生成类型)”设置为“D3D Project”
- 将“Target SDK Version(目标 SDK 版本)”设置为“Lastest Installed(最新安装项)”
- 将“Minimum Platform Version(最低平台版本)”设置为“10.0.10240.0”
- 将“Visual Sudio Version(Visual Studio 版本)”设置为“Visual Studio 2022”(安装了哪个版本就用哪个版本,VS2019 也一样的)
- 将“Build and Run on(生成和运行位置)”设置为“Local Machine(本地计算机)”
- 将“Build Configuration(生成配置)”设置为“Release(发布)”
点击 Switch Platform 切换平台,随后点击 Build 生成项目即可
等待项目生成

生成完毕

3 参考资料
MRTK2-Unity 开发人员文档 - MRTK 2 | Microsoft Learn
混合现实工具包简介 - 设置项目并使用手势交互 - Training | Microsoft Learn
【MRTK】HoloLens开发基础项目设置的更多相关文章
- iOS开发基础之设置状态栏和二维码的unspported type found 问题
最近遇到设置状态栏和二维码AVCaptureMetadataOutput setMetadataObjectTypes: unspported type found的错误问题,所以我在这里进行总结一下 ...
- (三十一)web 开发基础项目
1. 编写index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- Java基础学习总结(70)——开发Java项目常用的工具汇总
要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...
- .NET项目开发的几个非常重要的项目设置
在开发.NET项目的时候,包括Winform项目和Web方面的项目,编译和部署的时候,都需要考虑到是32位的X86方式,还是64位的方式,有时候还需要进行调试,如果没有合理设置好这些关系,还可能出现无 ...
- 开发环境中biztalk项目设置注意事项(转)
适用版本:biztalk 2006 适用环境:开发测试环境 在开发过程中,在开发环境中,一定会是一个对项目不断的修改.编译.部署.测试,查看测试结果,发现有问题,然后回到开发环境再修改.编译.部署 ...
- Unity推荐设置(HoloLens开发系列)
本文翻译自:Recommended settings for Unity Unity提供了一系列默认选项,这些选项能够适用于所有平台的一般情况.但是,Unity同样为HoloLens提供了一些特殊行为 ...
- 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。
LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...
- HoloLens开发手记 - 应用程序模型 App model
HoloLens使用Universal Windows Platform (UWP)提供的应用模型.UWP应用模型定义了应用如何被安全和完全地安装.更新.版本控制和移除.它管理了应用生命周期 - 应用 ...
- HoloLens开发手记 - Unity development overview 使用Unity开发概述
Unity Technical Preview for HoloLens最新发行版为:Beta 24,发布于 09/07/2016 开始使用Unity开发HoloLens应用之前,确保你已经安装好了必 ...
- Unity开发概览(HoloLens开发系列)
本文翻译自:Unity development overview 要开始使用Unity创建全息应用,点此安装包含Unity HoloLens技术预览的开发工具.Unity HoloLens技术预览基于 ...
随机推荐
- Dubbo-聊聊通信模块设计
前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...
- git 进阶篇
在git使用时,有时需要在公司内部搭建自己的git服务器,用于内部的版本控制. 从远程服务器到本地 先创建服务器端的空git库,将其clone到本地,再将本地的修改push到服务器端 # step1: ...
- 微信小程序canvas 证件照制作
小程序制作证件照过程 利用canvas制作生活中常用的证件照,压缩图片,修改图片dpi.希望给大家带来方便. 证件照小程序制作要点 上传合适的图片,方便制作证件照 调用AI接口,将图像进行人像分割.这 ...
- R数据分析:孟德尔随机化实操
好多同学询问孟德尔随机化的问题,我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟,盯着看将下图印在脑海中: 上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点:我们做孟德尔的 ...
- 一次SpringBoot版本升级,引发的血案
前言 最近项目组升级了SpringBoot版本,由之前的2.0.4升级到最新版本2.7.5,却引出了一个大Bug. 到底是怎么回事呢? 1.案发现场 有一天,项目组的同事反馈给我说,我之前有个接口在新 ...
- 「Python实用秘技11」在Python中利用ItsDangerous快捷实现数据加密
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第11 ...
- Node.js的学习(二)node.js 模块化
一.Node.js模块化 1.模块化概要 早期的javascript版本没有块级作用域.没有类.没有包.也没有模块,这样会带来一些问题,如复用.依赖.冲突.代码组织混乱等,随着前端的膨胀,模块化显得非 ...
- 基于 MQ 的分布式 Serverless 多租任务处理系统架构演进
本文作者:史明伟 , 阿里云智能高级技术专家. 1 Serverless 异步任务处理系统诞生和挑战 无论是对于云的开发者,还是尝试业务升级的企业客户,Serverless的三个概念 "极致 ...
- mindxdl--common--errs.go
// Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.// Package common the error ...
- 面试官不按套路,竟然问我Java线程池是怎么统计线程空闲时间?
背景介绍: 你刚从学校毕业后,到新公司实习,试用期又被毕业,然后你又不得不出来面试,好在面试的时候碰到个美女面试官! 面试官: 小伙子,我看你简历上写的项目中用到了线程池,你知道线程池是怎样实现复用线 ...