前言

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

最新文章

  1. 移动web app开发必备 - 异步队列 Deferred
  2. Unity IoC Container创建对象过程
  3. iOS的 context 和Android 中的 canvas
  4. 排序算法FOUR:堆排序HeapSort
  5. invesments 第三章 上
  6. ant jsch.jar - 一个错误及解决办法
  7. centos lvm常用命令
  8. LogBack log出力路径
  9. Win7电脑桌面的Administrator图标没了怎么办
  10. JAVA 的 Date、Calendar的常用用法
  11. python clock装饰器 计算函数执行时间,执行结果及传入的参数
  12. TCP三次握手详解及释放连接过程
  13. Tomcat如何检测内存泄漏
  14. 内地视频网站对各种浏览器HTML5的支持情况
  15. Win7共享文件夹简单?这个共享问题可以难倒90%的人
  16. 3,postman的变量写法和collection
  17. python 全栈开发,Day2(in,while else,格式化输出,逻辑运算符,int与bool转换,编码)
  18. Java生成PDF文档(表格、列表、添加图片等)
  19. JUnit注解
  20. Kafka、RabbitMQ、RocketMQ消息中间件的对比

热门文章

  1. 重新整理 .net core 实践篇 ———— linux上排查问题实用工具 [外篇]
  2. ubuntu 基本指令
  3. java学习之EL和JSTL
  4. elasticsearch聚合之bucket terms聚合
  5. Pthread 并发编程(二)——自底向上深入理解线程
  6. 原来 GitHub 不仅能学代码,还有这些东西
  7. 图神经网络之预训练大模型结合:ERNIESage在链接预测任务应用
  8. ArcObjects SDK开发 008 从mxd地图文件说起
  9. 使用pycharm or vscode来编写python代码?
  10. 「Docker学习系列教程」9-Docker容器数据卷介绍