使用混合现实功能工具安装 World Locking Tools

MR 功能工具

混合现实功能工具是一种非常有用的方法,用于获取 World Locking Tools 以及适用于 Unity 的其他有价值的混合现实包。

有关 MR 功能工具的详细信息,请参阅联机文档,但它使用起来非常简单。

Mixed Reality Feature Tool screenshot

通过 MR 功能工具安装 WLT

若要获取完整的 WLT 功能,只需从 MR 功能工具中选择“World Locking Tools”的最新版本即可。 然后转到向场景添加 WLT,或快速入门指南

如果获取示例(这也需要 MRTK),则不必先安装依赖项。 只需选择示例包,也会安装所需依赖项的最小集。 但请参阅下文

注意

TL;DR 版本 - 如果从 MR 功能工具安装,则必须安装到其路径长度为 11 个字符或更少字符(包括驱动器)的文件夹中。 本文末尾更详细地介绍了这一点。 所以,e:\stuff\T1 将会起作用,但 e:\stuff\T12 不会起作用。

MR 功能工具中的示例(可写入包)

如上所述,MR 功能工具和 UPM 将包安装为只读资源。 这对于示例而言很不方便,因为示例的大部分价值在于提供可变资产,可修改这些资产以进行试验。

若要启用该功能,由 MR 功能工具(或 UPM)安装的示例需要遵循略微不同的路径。 它们的安装过程分为两部分。

第一部分是安装只读包。 但在该安装之后,示例将不会显示在“资产”或“包”中。

若要完成将示例导入项目中,请执行以下操作:

  1. 打开 Unity 包管理器

  2. 如果包管理器设置为“Unity 注册表”,请将其更改为“在项目中”

    Package manager In Project

  3. 查找要完成安装的示例。 此处我们的目标是“World Locking Samples v1.2.4”。

    Import into project button

  4. 单击“导入项目”按钮。

  5. 现在,示例会显示在“资产”中的“Samples”文件夹下,如下所示。 可以重定位它们,以适合项目的组织。

    Samples shown in Unity project

安装方法之间的差异

决定要使用哪种安装方法时,有一些细微的注意事项。

MR 功能工具(UPM 包)

MR 功能工具的主要驱动因素是包依赖关系。 MR 功能工具中的包可以指定其他需要安装才能正常工作的包。 然后,该功能工具不但可以获取和安装你请求的包,还可以获取和安装它的所有依赖项。 在功能工具处理了你请求的安装之后,无需跟踪其他安装。

通过 MR 功能工具(或 UPM)获得的资源与从 .unitypackage 文件中获取的资源之间的最大区别在于,前者是以只写方式安装的,而后者是以与你自己的资源一样的方式安装的。

请注意,通过功能工具获取 WLT 时,Frozen World Engine DLL 作为依赖项引入。 不需要通过 NuGet 进行手动安装。

WLT 版本(.unitypackage 文件)

WLT 发布定期版本,它们被视为非常稳定的快照。 World Locking Tools 版本页面上提供了这些版本。

如上所述,将这些 .unitypackage 文件导入到项目中的结果与在源中复制的结果相同(如下所示)。 脚本和资产是可写入的,并且可以进行重新排列以适应你的结构。

依赖关系链非常简单,但安装依赖项以及所需的包是安装客户(你)的责任。

简单的依赖关系图是线性的。 在以下列表中,每个项都依赖于它上面的每个项,但不依赖它下面的任何项:

  1. Frozen World Engine DLL(来自 NuGet,请参阅安装说明
  2. World Locking 核心引擎
  3. 世界锁定工具
  4. World Locking 示例(也依赖于 MRTK,但 MRTK 包含在 .unitypackage 中)

从 GitHub 代码中(在源中复制)

获取 WLT 的另一种方法是,(通过 git 或 zipfile)直接从 GitHub 获取源,并将其复制到你的项目中。 这等效于从前文的 .unitypackages 中进行安装。

若要获取与版本匹配的源,请找到相应的分支。 例如,版本 v1.2.4 的源位于分支 release/v1.2.4 中。

关于安装路径长度限制

从混合现实功能工具安装时

Windows 强制实施 260 个字符的最大路径长度。 Frozen World Engine 包的内部路径非常长。 混合现实功能工具(或 Unity 的 UPM,具体取决于你想要问责的对象)在中间添加一些非常长的字符串。

如果你在 Unity 控制台中看到错误抱怨无法找到部分路径,你会知道是否已超过 MAX_PATH 限制。

Long path error

同样,安装路径 e:\stuff\T1 会正常运行,但 e:\stuff\T12 会过长。

讽刺的是,达到该限制的第一个文件甚至不是用于 Windows,它是针对 iOS 版本(iOS 没有 MAX_PATH 限制)。 如果没有它,WLT 也可以生成和运行。 但是,该文件的存在会干扰一些重要的 MRTK 脚本的运行,并且可能以其他微妙的方式导致 Unity 不稳定。

从 .unitypackage 文件或 github 进行安装时

如果不使用 UPM/MRFeatureTool 将字符插入到安装路径,则会有稍微多一点的空间。 但是,Frozen World Engine 内的内部路径层次结构仍相当深。 从 unitypackage 文件或 github 进行安装时,安装文件夹的长度应为约 100 个字符或更短。

关于这个 WLT 问题,有更多调查和讨论。