必须设置集群渲染网络,以便将主节点的输入传递到所有客户端节点。为此,必须设置集群输入设置 (Cluster Input Settings),并使用 VRPN 服务器将该输入发送到所有客户端节点。
对于所有正常输入,必须在集群输入管理器设置中定义输入映射。此设置位于 Project setting > Cluster Input
菜单中。
属性: | 功能: |
---|---|
Size | 集群输入条目数量 |
Name | 此条目的唯一名称。在脚本中用于标识每个条目。 |
Device Name | 注册到 VRPN 服务器的设备名称。 |
Server URL | 要连接到 VRPN 的 URL。如果服务器在本地启动,通常为“localhost”。 |
Index | 此输入条目要连接到的设备的索引/通道。 |
Type | 输入的类型。 |
- Button | 返回“已按”或“未按”的二进制结果的设备。 |
- Axis | 设备是一个模拟轴,提供由浮点数表示的连续值。 |
- Tracker | 用于提供位置和方向值的设备。 |
- CustomProvidedInput | 用户自定义输入。 |
可通过 ClusterInput 类从脚本访问输入到集群输入管理器设置中的所有条目。与 Unity 的常规 Input 类的用法非常相似;您可以使用 API 读取每帧的输入状态并对其进行操作。请参阅 ClusterInput 脚本参考中的示例。
只要有项目从 ClusterInput 类读取输入,VRPN 服务器就必须存在并在连接正确设备的情况下运行。VRPN 设备由其名称和 URL 标识。通常,完整形式的 URL 类似于 TrackerA@localhost。其中,TrackerA 是设备名称,localhost 是 VRPN 设置中定义的服务器 URL。
有关 VRPN 的更多信息,请访问此网站:http://www.cs.unc.edu/Research/vrpn/
如果项目不使用 ClusterInput 类,而仅使用自定义输入(见下文),则不需要 VRPN 服务器。
有时可能希望通过编写 Unity C++ 插件直接使用设备制造商的 SDK 来集成输入设备。然后,此插件会使用互操作服务将值传递到项目的 C# 端。在这种情况下,输入将不会同步到集群的其余部分。为了解决这个问题,ClusterInput 提供了一组命令,可以捕获这些自定义输入值并复制到整个集群中。
为此,必须在 Cluster Input Inspector 中创建和配置输入,并将 Type 设置为 User Provided Input
。在集群的主节点上,像往常一样轮询来自集成设备的输入值,并使用以下 API 之一将它们发送到这些输入:
然后,这些值将可用于集群的其余部分以及主节点。