Unity 从 2019 版本开始推行引擎模块化拆分,大量原先内置于 UnityEngine.dll 的功能被拆分为独立的托管程序集。UnityEngine.ClusterInputModule.dll 就是其中之一,它承载了 Unity Cluster Input(集群输入)体系的全部托管层实现,服务于多机集群渲染、CAVE、分布式 VR 等场景。
一、核心功能
1. ClusterInput API 的承载层。该 DLL 实现了 ClusterInput 静态类的运行时逻辑,包括 AddInput、CheckConnection、GetButton、GetAxis、GetTrackerPosition、GetTrackerRotation、SetAxis 等接口。
2. 集群输入服务器通信。通过网络与 Cluster Input Server 建立连接,将本地物理设备(按钮、轴、追踪器)的状态上报,并拉取全局统一的输入快照。
3. 设备注册与索引映射。把逻辑设备名与索引绑定到物理设备,使集群内各渲染节点能按同一索引读取同一输入源。
4. 状态同步与线程安全读取。负责时序对齐与缓存,保证主线程每帧拿到的输入数据在节点间保持一致。
二、缺少该 DLL 的可能影响
运行时异常。程序集加载失败会抛出 FileNotFoundException 或 TypeLoadException,若代码引用了 ClusterInput 类型,可能在启动阶段或首次调用时直接崩溃。
编辑器正常、构建版本异常。常见于托管代码剥离(Managed Stripping Level)过高或模块被裁剪,编辑器下功能完好,打包后失效。
集群输入完全失去同步。接口静默返回 0、false 或默认四元数,导致各渲染节点输入不一致、视角错位、追踪漂移。
无法通过代码补救。该能力由引擎侧提供,缺失后只能通过调整剥离设置、补充 link.xml 保留声明,或从同版本引擎安装目录回补对应模块文件解决。
提示:若项目并未使用集群输入功能,缺失该模块通常不影响正常运行;若使用多机同步 VR / 集群渲染方案,则应确保该模块随构建完整发布。