MRTK 包 - MRTK2
混合现实工具包 (MRTK) 是通过提供混合现实硬件和平台支持来实现跨平台混合现实应用程序开发的一系列包。
MRTK 以资产 (.unitypackage) 包的形式通过 Unity 包管理器提供。
资产包
可以从 GitHub 下载 MRTK 资产 (.unitypackage)。
使用资产包的部分好处包括:
- 适用于 Unity 2018.4 和更高版本
- 方便对 MRTK 进行更改
- MRTK 位于 Assets 文件夹中
下面是一些难点:
- MRTK 是项目的 Assets 文件夹的一部分,这会造成以下问题
- 项目变得更大
- 编译时间更长
- 无法进行依赖项管理
- 客户需要手动解析包依赖项
- 手动更新过程
- 多个 步骤
- 大规模(3000 多个文件)的源代码管理更新
- 无法对 MRTK 进行更改所带来的风险
- 导入示例包通常意味着需要包含所有示例
可用的包为:
Microsoft 通过 GitHub 上的源代码发布和支持这些包。
基础包
混合现实工具包基础是使应用程序能够跨混合现实平台利用通用功能的代码集。
![帕克奇基金会](../features/images/input/mrtk_package_foundation.png?view=mrtkunity-2022-05)
MRTK 基础包包含以下组件。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Core | 接口和类型定义、基类、标准着色器。 | |
MRTK/Core/Providers | 平台不可知的数据提供程序 | |
手 | 用于手部跟踪的基类支持和服务。 | |
InputAnimation | 为录制头部运动和手部跟踪数据提供支持。 | |
InputSimulation | 为手部和视线输入的编辑器内模拟提供支持。 | |
ObjectMeshObserver | 使用 3D 模型作为数据的空间感知观察器。 | |
UnityInput | 通过 Unity 的输入 API 实现的常用输入设备(游戏杆、鼠标等)。 | |
MRTK/Providers | 平台特定的数据提供程序 | |
LeapMotion | 为 UltraLeap Leap 运动控制器提供支持。 | |
OpenVR | 为 OpenVR 设备提供支持。 | |
Oculus | 为 Quest 等 Oculus 设备提供支持。 | |
UnityAR | (试验性)与移动 AR 设备配合使用的支持 MRTK 的相机设置提供程序。 | |
WindowsMixedReality | 为 Windows Mixed Reality 设备(包括 Microsoft HoloLens 和沉浸式头戴显示设备)提供支持。 | |
Windows | 为 Microsoft Windows 特定的 API(例如语音和听写)提供支持。 | |
XR SDK | (试验性)为 Unity 2019.3 和更高版本中的 Unity 新 XR 框架提供支持。 | |
MRTK/SDK | ||
实验 | 试验性功能,包括着色器、用户界面控件和单独的系统管理器。 | |
功能 | 基于基础包构建的功能。 | |
档案 | Microsoft 混合现实工具包系统和服务的默认配置文件。 | |
StandardAssets | 通用资产;模型、纹理、材料等。 | |
MRTK/SceneSystemResources | 场景系统使用的资产和资源 | |
MRTK/Services | ||
BoundarySystem | 实现 VR 边界支持的系统。 | |
CameraSystem | 实现相机配置和管理的系统。 | |
DiagnosticsSystem | 在应用程序诊断中实现的系统,例如视觉探查器。 | |
InputSystem | 为访问和处理用户输入提供支持的系统。 | |
SceneSystem | 提供多场景应用程序支持的系统。 | |
SpatialAwarenessSystem | 为用户环境感知提供支持的系统。 | |
TeleportSystem | 为传送(在体验中四处跳转)提供支持的系统。 | |
MRTK/StandardAssets | MRTK 标准着色器、基本材料和用于混合现实体验的其他标准资产 |
扩展包
可选的 Microsoft.MixedRealityToolkit.Unity.Extensions 包包括用于扩展 Microsoft 混合现实工具包功能的其他服务。
注意
扩展包需要 Microsoft.MixedRealityToolkit.Unity.Foundation。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Extensions | ||
HandPhysicsService | 为关节手添加物理支持的服务。 | |
LostTrackingService | 简化 Microsoft HoloLens 设备上的跟踪丢失处理的服务。 | |
SceneTransitionService | 简化顺畅场景过渡添加过程的服务。 |
工具包
可选的 Microsoft.MixedRealityToolkit.Unity.Tools 包包括有用的工具,这些工具可以使用 Microsoft 混合现实工具包来增强混合现实开发体验。 这些工具位于 Unity 编辑器的“混合现实工具包”>“实用工具”菜单中。
注意
工具包需要 Microsoft.MixedRealityToolkit.Unity.Foundation。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Tools | ||
BuildWindow | 有助于简化 UWP 应用程序生成和部署过程的工具。 | |
DependencyWindow | 用于在项目中创建资产依赖关系图的工具。 | |
ExtensionServiceCreator | 用于帮助创建扩展服务的向导。 | |
MigrationWindow | 用于帮助更新使用已弃用 MRTK 组件的代码的工具。 | |
OptimizeWindow | 用于帮助自动配置混合现实项目以在 Unity 中获得最佳性能的实用工具。 | |
ReserializeAssetsUtility | 为重新序列化特定 Unity 文件提供支持。 | |
RuntimeTools/Tools/ControllerMappingTool | 使开发人员能够快速确定硬件控制器的 Unity 映射的实用工具。 | |
ScreenshotUtility | 在 Unity 编辑器中启用捕获应用程序图像。 | |
TextureCombinerWindow | 用于组合图形纹理的实用工具。 | |
工具箱 | 用于轻松发现和使用 MRTK UX 组件的 UI。 |
测试实用工具包
可选的 Microsoft.MixedRealityToolkit.TestUtilities 包是一系列帮助器脚本,使开发人员能够轻松创建播放模式测试。 这些实用工具对于创建 MRTK 组件的开发人员特别有用。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Tests | ||
TestUtilities | 用于简化游戏模式测试创建过程的方法,包括手部模拟实用工具。 |
示例包
示例包包含演示、示例脚本和示例场景,用于练习基础包中的功能。 此包包含 HandInteractionExample 场景(如图所示),其中包含对各种手部输入(关节式和非关节式)做出响应的示例对象。
此包还包含此处所述的眼动追踪演示
更笼统地说,MRTK 中的任何新功能都应在示例包中包含相应的示例,大致遵循相同的文件夹结构和位置。
注意
示例包需要 Microsoft.MixedRealityToolkit.Unity.Foundation。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Examples | ||
演示 | 用于演示一个或两个相关功能的简单场景。 | |
实验 | 用于演示试验性功能的演示场景。 | |
StandardAssets | 由多个演示场景共享的公用资产。 |
Unity 包管理器
对于使用 Unity 2019.4 和更高版本创建的体验,可以通过 Unity 包管理器使用 MRTK。
使用资产包的部分好处包括:
- 项目更小
- 更干净的 Visual Studio 解决方案
- 要签入的文件更少(MRTK 是
Packages/manifest.json
文件中的简单引用)
- 编译速度更快
- 在生成期间,Unity 无需重新编译 MRTK
- 依赖项解析
- 指定包含依赖项的包时,会自动安装所需的 MRTK 包
- 轻松更新到新的 MRTK 版本
- 在
Packages/manifest.json
文件中更改版本
- 在
下面是一些难点:
- MRTK 是不可变的
- 在包解析期间,在不删除包的情况下无法更改包
- MRTK 不支持使用 Unity 2018.4 的 UPM 包
基础包
基础包 (com.microsoft.mixedreality.toolkit.foundation
) 构成了混合现实工具包的基础。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Core | 接口和类型定义、基类、标准着色器。 | |
MRTK/Core/Providers | 平台不可知的数据提供程序 | |
手 | 用于手部跟踪的基类支持和服务。 | |
InputAnimation | 为录制头部运动和手部跟踪数据提供支持。 | |
InputSimulation | 为手部和视线输入的编辑器内模拟提供支持。 | |
ObjectMeshObserver | 使用 3D 模型作为数据的空间感知观察器。 | |
UnityInput | 通过 Unity 的输入 API 实现的常用输入设备(游戏杆、鼠标等)。 | |
MRTK/Providers | 平台特定的数据提供程序 | |
LeapMotion | 为 UltraLeap Leap 运动控制器提供支持。 | |
OpenVR | 为 OpenVR 设备提供支持。 | |
Oculus | 为 Quest 等 Oculus 设备提供支持。 | |
UnityAR | (试验性)与移动 AR 设备配合使用的支持 MRTK 的相机设置提供程序。 | |
WindowsMixedReality | 为 Windows Mixed Reality 设备(包括 Microsoft HoloLens 和沉浸式头戴显示设备)提供支持。 | |
Windows | 为 Microsoft Windows 特定的 API(例如语音和听写)提供支持。 | |
XR SDK | (试验性)为 Unity 2019.3 和更高版本中的 Unity 新 XR 框架提供支持。 | |
MRTK/SDK | ||
实验 | 试验性功能,包括着色器、用户界面控件和单独的系统管理器。 | |
功能 | 基于基础包构建的功能。 | |
档案 | Microsoft 混合现实工具包系统和服务的默认配置文件。 | |
StandardAssets | 通用资产;模型、纹理、材料等。 | |
MRTK/Services | ||
BoundarySystem | 实现 VR 边界支持的系统。 | |
CameraSystem | 实现相机配置和管理的系统。 | |
DiagnosticsSystem | 在应用程序诊断中实现的系统,例如视觉探查器。 | |
InputSystem | 为访问和处理用户输入提供支持的系统。 | |
SceneSystem | 提供多场景应用程序支持的系统。 | |
SpatialAwarenessSystem | 为用户环境感知提供支持的系统。 | |
TeleportSystem | 为传送(在体验中四处跳转)提供支持的系统。 |
依赖项:
- 标准资产 (
com.microsoft.mixedreality.toolkit.standardassets
)
标准资产
标准资产包 (com.microsoft.mixedreality.toolkit.standardassets)
是建议用于所有混合现实体验的一系列组件,包括:
- MRTK 标准着色器
- 使用 MRTK 标准着色器的基本材料
- 音频文件
- 字体
- 纹理
- 图标
注意
为了避免基于程序集定义进行中断性变更,标准资产包中未包含用于控制某些 MRTK 标准着色器功能的脚本。 可以在 MRTK/Core/Utilities/StandardShader
文件夹中的基础包内找到这些脚本。
依赖项:无
扩展包
可选扩展包 (com.microsoft.mixedreality.toolkit.extensions)
包含用于扩展 MRTK 功能的附加组件。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Extensions | ||
HandPhysicsService | 为关节手添加物理支持的服务。 | |
LostTrackingService | 简化 Microsoft HoloLens 设备上的跟踪丢失处理的服务。 | |
SceneTransitionService | 简化顺畅场景过渡添加过程的服务。 | |
Samples~ | 包含示例场景和资产的隐藏(在 Unity 编辑器中)文件夹。 |
在混合现实工具包和 Unity 包管理器一文中可以找到有关包含示例项目的包的使用过程的更多详细信息。
依赖项:
- 基础 (
com.microsoft.mixedreality.toolkit.foundation
)
工具包
可选工具包 (com.microsoft.mixedreality.toolkit.tools)
包含可用于创建混合现实体验的工具。 通常,这些工具是编辑器组件,其代码不会作为应用程序的一部分提供。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Tools | ||
BuildWindow | 有助于简化 UWP 应用程序生成和部署过程的工具。 | |
DependencyWindow | 用于在项目中创建资产依赖关系图的工具。 | |
ExtensionServiceCreator | 用于帮助创建扩展服务的向导。 | |
MigrationWindow | 用于帮助更新使用已弃用 MRTK 组件的代码的工具。 | |
OptimizeWindow | 用于帮助自动配置混合现实项目以在 Unity 中获得最佳性能的实用工具。 | |
ReserializeAssetsUtility | 为重新序列化特定 Unity 文件提供支持。 | |
RuntimeTools/Tools/ControllerMappingTool | 使开发人员能够快速确定硬件控制器的 Unity 映射的实用工具。 | |
ScreenshotUtility | 在 Unity 编辑器中启用捕获应用程序图像。 | |
TextureCombinerWindow | 用于组合图形纹理的实用工具。 | |
工具箱 | 用于轻松发现和使用 MRTK UX 组件的 UI。 |
依赖项:
- 基础 (
com.microsoft.mixedreality.toolkit.foundation
)
测试实用工具包
可选的测试实用工具包 (com.microsoft.mixedreality.toolkit.testutilities
) 包含一系列帮助器脚本,使开发人员能够轻松创建播放模式测试。 这些实用工具对于创建 MRTK 组件的开发人员特别有用。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Tests | ||
TestUtilities | 用于简化游戏模式测试创建过程的方法,包括手部模拟实用工具。 |
依赖项:
- 基础 (
com.microsoft.mixedreality.toolkit.foundation
)
示例包
示例包 (com.microsoft.mixedreality.toolkit.examples
) 的结构使开发人员能够仅导入他们感兴趣的示例。
在混合现实工具包和 Unity 包管理器一文中可以找到有关包含示例项目的包的使用过程的更多详细信息。
文件夹 | 组件 | 说明 |
---|---|---|
MRTK/Examples | ||
Samples~ | 包含示例场景和资产的隐藏(在 Unity 编辑器中)文件夹。 | |
StandardAssets | 由多个演示场景共享的公用资产。 |
依赖项:
- 基础 (
com.microsoft.mixedreality.toolkit.foundation
) - 扩展 (
com.microsoft.mixedreality.toolkit.extensions
)