我正在使用 SteamVR 在 Unity 中创建一个 VR 应用程序。我已经实现了一个 Snap Rotation Script,因此,用户可以在游戏中转身,而无需进行实际操作。
我的层次结构是:[CameraRig] -> (Controller left, Controller right, camera)
现在的问题是:当我拿着一个物体并想扔它时,如果我之前旋转了 CameraRig,那么扔的物体就会表现得很奇怪。它的方向是异相的,基于 CameraRig 的累积旋转。如果我从不旋转 CameraRig,则抛出的对象表现正常
我正在使用 FixedJoint 组件将对象附加到手上。
我怎样才能解决这个问题?
public void Drop() {
// Null Check
if (!m_CurrentInteractable){
return;
}
// Apply velocity
Rigidbody targetBody = m_CurrentInteractable.GetComponent<Rigidbody>();
targetBody.velocity = m_pose.GetVelocity();
targetBody.angularVelocity = m_pose.GetAngularVelocity();
// Detach
m_Joint.connectedBody = null;
// Clear
m_CurrentInteractable.m_ActiveHand = null;
m_CurrentInteractable = null;
}