VRCSDK 辅助组件
辅助组件添加到对象上,以帮助处理 VRC SDK 组件的行为。与 CyanEmu 和 Phase 2 相比,这些组件的角色保持不变,尽管一些不特定于对象自身功能的逻辑已被剥离。例如,在 CyanEmu 中,CyanEmuPickupHelper 脚本处理拾取的逻辑。现在这种行为已从拾取辅助类中移出,移到了拾取管理系统。PickupHelper 代码现在仅提供 PlayerHand 应如何处理拾取的数据。
辅助类也可以扩展 ClientSim 中使用的接口。有两类接口:可用接口和处理器接口。
可用接口
可用接口通常以"able"结尾,表示可以在 ClientSim 中以某种方式使用的项目。它们提供如何使用它们的信息,但不包括使用它们的方法。
| 名称 | 描述 |
|---|---|
| IClientSimInteractable | 表示可以与之交互的对象 |
| IClientSimPickupable | 表示可以拾取的对象,扩展 Interactable |
| IClientSimStation | 表示玩家可以坐下使用的对象 |
| IClientSimSyncable | 表示可以拥有所有者的对象 |
| IClientSimPositionSyncable | 表示同步其位置的对象,扩展 Syncable |
处理器接口
使用这两种接口类型,Helper 类是通过封装 VRChat SDK 组件信息以提供给 ClientSim 的方式。
| 名称 | 描述 |
|---|---|
| PositionSyncedHelperBase | VRCObjectSync 的辅助组件,扩展 PositionSyncedHelperBase。Syncable、PositionSyncable、RespawnHandler |
| ObjectSyncHelper | VRCObjectSync 的辅助组件,扩展 PositionSyncedHelperBase。Syncable、PositionSyncable、RespawnHandler |
| UdonHelper | UdonBehaviour 的辅助组件,扩展 PositionSyncedHelperBase。Syncable、PositionSyncable、RespawnHandler、Interactable、PickupHandler、StationHandler、SyncableHandler |
| PickupHelper | VRCPickup 的辅助组件。Pickupable |
| StationHelper | VRCStation 的辅助组件。实现 IClientSimStation |
| ObjectPoolHelper | VRCObjectPool 的辅助组件。Syncable |
| CombatSystemHelper | Udon CombatSetup 的辅助组件。实现 IVRC_Destructible。初始化时直接添加到玩家对象的辅助组件。 |
| SpatialAudioHelper | VRCSpatialAudioSource 的辅助组件 |