1

我正在开发基于 MixedRealityToolkit v2 的多人游戏应用程序。为了测试网络系统,我需要进行几次构建来启动客户端和服务器,并且我想在同一台机器上执行此操作,而无需使用真实设备(或模拟器)。问题是输入模拟服务只能在 Unity 编辑器中工作,这意味着我不能在同一台机器上测试多个客户端;此外,要使用真实设备(HoloLens 或 Windows Mixed Reality Headset),我必须构建一个 UWP 应用程序,这比为 WindowsStandalone 构建要慢得多。

有没有办法强制 MRTKv2 在构建(可能是 WindowsStandalone 构建)中使用输入模拟服务?

提前感谢任何会尽力帮助我的人!

4

3 回答 3

1

感谢您的反馈

MRTK 正在通过以下 PR https://github.com/microsoft/MixedRealityToolkit-Unity/pull/7018解决此问题

于 2020-01-10T00:19:04.453 回答
0

我为 MixedRealityToolkit 创建了一个替代的输入模拟服务,它试图模拟一个 VR 系统。该服务在编辑器和 Win32 版本中均有效。

由于这是一项非常快速的工作,因此它不是没有错误的,但应该可以用于测试目的。

https://github.com/DamianoOriti/MRTK-Custom-Input-Simulation-Service

于 2019-06-18T18:39:06.180 回答
0

输入模拟主要用于编辑器,目前不支持在编辑器之外使用它。

话虽如此,我可以看到您所描述的独立使用它的价值。我已经快速尝试在所有平台上启用该服务,这并不难(见下文)。

主要的亮点是从 JSON 文件加载铰接的手部姿势,这些文件使用MixedRealityToolkitFiles实用程序进行搜索,该实用程序仅适用于编辑器构建。如果没有这个,模拟手的动画数据就会丢失。

为了完整起见,我在下面列出了我尝试过的步骤。也许您可以想出一个独立于平台的解决方案来加载这些文件。

  • 编辑

    Assets\MixedRealityToolkit.Services\InputSimulation\MixedRealityToolkit.Services.InputSimulation.asmdef

    删除中的所有条目"includePlatforms"。这将包括所有构建中的输入模拟程序集。

    • 下移Assets\MixedRealityToolkit.Services\InputSimulation\Editor\InputSimulationService.cs一级Assets\MixedRealityToolkit.Services\InputSimulation\Editor程序集需要 UnityEditor 特定代码)。

    • 这可能会破坏配置文件中的服务条目。选择 MixedRealityToolkit 对象并在检查器中转到Input > Input Data Providers > Input Simulation Service。然后点击“尝试修复”按钮或手动选择正确的服务类型。

    • 将输入模拟的平台设置为“一切”,以在所有平台上实际启用服务。

此时输入模拟仍然可以在编辑器中工作,但是当您尝试构建它时会出现LoadGesturePoses找不到函数的错误。该功能在Assets/MixedRealityToolkit/Definitions/Utilities/ArticulatedHandPose.cs. 注意#if UNITY_EDITOR部分。删除 #if 将抱怨找不到 MixedRealityToolkitFiles 类,该类也在编辑器程序集中。

于 2019-06-17T14:38:52.650 回答