我们正在构建一个 3D VR 台球,我们正在努力使用 Cue-Stick。
我们尽可能多地使用 steamVR Interactable 脚本。
我把球杆附在手上
hand.AttachObject(gameObject, GrabTypes.Grip, Hand.AttachmentFlags.VelocityMovement, Pivot.transform);
偏移量 (Pivot.transform
在这里很重要,因为我们希望在正确的位置附加到对象(这在运行时确定,取决于用户在抓取时将手放在哪里)。因为 Cue 杆是使用速度而不是通过父项移动的,抓取位置并不总是在摇杆上(摇杆有阻力、碰撞等)。这是非常沉浸式的破坏。为了弥补这个问题,Intractable 脚本有一个布尔值Hand Follow Transform
,可以完美解决这个问题。遗憾的是现在的手跳转到 Cue 的中点(原点),即使我们在完全不同的地方抓取它。它仍然表现得像它应该的那样,但在视觉上它非常混乱。
SteamVR Intractable 支持附加时的偏移,但在定位手时会忘记该偏移。
有什么我想念的吗?或者这不是一回事?
我多次阅读脚本代码,它看起来像偏移在放置手的范围内不可用。因此,这不可能起作用。
我怎么解决这个问题?
我试着退回到只是养育手,但这使得 Cue 和球之间的物理交互变得时髦。我还通读了大部分脚本以了解发生Interactable
了Hand
什么,除了阀门命名约定对我有点伤害之外,我没有成功找到方法。不过,我对此感到不知所措,而且我很可能会错过一些东西。
不过,可能有可能的是,将 Hand 附着点设置到 Cue 上的正确位置,但是这个变换被放置在RightHand
(和左边)预制件中,每帧更改这个变换或父子关系似乎是一个非常糟糕的主意它到 Cue 游戏对象。
有没有更好的办法?