Я создаю приложение VR в Unity, используя SteamVR. Я реализовал скрипт Snap Rotation, так что пользователь может поворачиваться в игре, не делая этого физически.
Моя иерархия: [CameraRig] -> (Контроллер слева, Контроллер справа, камера)
Теперь проблема в том, что когда я держу объект и хочу его бросить, если я повернул 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;
}