前言

好记性不如烂笔头,之前做项目的时候很熟练很顺手就没有写笔记。因为排期问题项目中断几个月之后需要重新拾起来,结果发现自己现在忘记得差不多了,于是还是决定写点东西记录一下。即便是简单的项目设置,忘记的时候也还是很痛苦啊。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开发基础项目设置的更多相关文章

  1. iOS开发基础之设置状态栏和二维码的unspported type found 问题

    最近遇到设置状态栏和二维码AVCaptureMetadataOutput setMetadataObjectTypes: unspported type found的错误问题,所以我在这里进行总结一下 ...

  2. (三十一)web 开发基础项目

    1. 编写index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  3. Java基础学习总结(70)——开发Java项目常用的工具汇总

    要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...

  4. .NET项目开发的几个非常重要的项目设置

    在开发.NET项目的时候,包括Winform项目和Web方面的项目,编译和部署的时候,都需要考虑到是32位的X86方式,还是64位的方式,有时候还需要进行调试,如果没有合理设置好这些关系,还可能出现无 ...

  5. 开发环境中biztalk项目设置注意事项(转)

      适用版本:biztalk 2006 适用环境:开发测试环境 在开发过程中,在开发环境中,一定会是一个对项目不断的修改.编译.部署.测试,查看测试结果,发现有问题,然后回到开发环境再修改.编译.部署 ...

  6. Unity推荐设置(HoloLens开发系列)

    本文翻译自:Recommended settings for Unity Unity提供了一系列默认选项,这些选项能够适用于所有平台的一般情况.但是,Unity同样为HoloLens提供了一些特殊行为 ...

  7. 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。

    LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...

  8. HoloLens开发手记 - 应用程序模型 App model

    HoloLens使用Universal Windows Platform (UWP)提供的应用模型.UWP应用模型定义了应用如何被安全和完全地安装.更新.版本控制和移除.它管理了应用生命周期 - 应用 ...

  9. HoloLens开发手记 - Unity development overview 使用Unity开发概述

    Unity Technical Preview for HoloLens最新发行版为:Beta 24,发布于 09/07/2016 开始使用Unity开发HoloLens应用之前,确保你已经安装好了必 ...

  10. Unity开发概览(HoloLens开发系列)

    本文翻译自:Unity development overview 要开始使用Unity创建全息应用,点此安装包含Unity HoloLens技术预览的开发工具.Unity HoloLens技术预览基于 ...

随机推荐

  1. 自学 TypeScript 第三天 使用webpack打包 TS 代码

    前言: 大家好啊,昨天介绍了 TS 编译器的配置,但在我们实际开发当中直接使用 TS 编译器去编译代码的情况会有,但没有很多,因为我们在开发大型项目的时候,一般我们都会用到打包工具,也不可能脱离打包工 ...

  2. 基于python的数学建模---分支定界算法

    zip函数 a = [1,2,3,4]b = [5,6,7,8]i = sum(x * y for x, y in zip(a, b))print(i)70 floor and ceil 函数 imp ...

  3. vscode分级文件夹

    如果vscode不小心设置成文件独立展开,一堆文件看着很乱 这样设置 首选项-设置-功能-资源管理器-compack folders 就可以折叠文件夹了

  4. python实现图片转换pdf

    安装第三方库 linux平台 sudo apt install python3-reportlab python3-pil 示例代码 import sys from reportlab.pdfgen ...

  5. JSON提取器中串联一个接口的多个值传给下个接口(compute concatenation var的实际使用场景)

    实际场景:某功能在前端支持选择多条数据后点击提交,表现在接口是,一次传了多个Id. 问题:需要将上个接口的多个Id串联,传给提交接口. 处理方式:通过JSON提取器勾选:compute concate ...

  6. [奶奶看了都会]ChatGPT保姆级注册教程

    大家好,我是小卷 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT是真正的人工 ...

  7. 利用python数据分析

    利用python进行数据分析 本书由Python pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作.处理.清洗和规整数据等方面的具体细节和基本要点.第2版针对P ...

  8. IdentityServer4的最佳使用

    简介   本人做微服务项目也有一段时间了,在微服务中让我感触颇深的就是这个IdentityServer4了,ID4(IdentityServer4的简称)中涉及的概念颇多,本文不谈概念(我怕读者没耐心 ...

  9. SpringCloud微服务框架复习笔记

    SpringCloud微服务框架复习笔记 什么是微服务架构? 微服务是一种软件开发技术,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进 ...

  10. APICloud 入门教程窗口篇

    什么是窗口,窗口可以理解为一屏幕内容的一个基本载体,里面可以放导航,图片,视频,文字等组成一屏幕内容. 不同的窗口组成一个APP, 例如购物APP有[首页],[购物车],[我的]等不同的窗口.不同的窗 ...