是否可以在构建中强制使用MRTK的InputSimulationService?

时间:2019-06-14 16:06:35

标签: mrtk

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

是否有一种方法可以强制MRTKv2在内部版本(可能是WindowsStandalone内部版本)中使用Input Simulation Service?

在此先感谢您,任何人都会尝试帮助我!

3 个答案:

答案 0 :(得分: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对象,然后在检查器中转到输入>输入数据提供程序>输入模拟服务。然后点击“尝试修复”按钮或手动选择正确的服务类型。

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

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

答案 1 :(得分:0)

我为MixedRealityToolkit创建了一个替代的Input Simulation Service,它试图模拟一个VR系统。该服务在编辑器和Win32版本中均可使用。

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

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

答案 2 :(得分:0)

感谢您的反馈

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

解决此问题