protected void GrabEnd() { if (m_grabbedObj != null) { OVRPose localPose = new OVRPose { position = OVRInput.GetLocalControllerPosition(m_controller), orientation = OVRInput.GetLocalControllerRotation(m_controller) }; OVRPose offsetPose = new OVRPose { position = m_anchorOffsetPosition, orientation = m_anchorOffsetRotation }; localPose = localPose * offsetPose; OVRPose trackingSpace = transform.ToOVRPose() * localPose.Inverse(); Vector3 linearVelocity = trackingSpace.orientation * OVRInput.GetLocalControllerVelocity(m_controller); Vector3 angularVelocity = trackingSpace.orientation * OVRInput.GetLocalControllerAngularVelocity(m_controller); m_playerCont.StopIgnore(m_grabbedObj); // Heikki added for test, Stop ignoring player collision GrabbableRelease(linearVelocity, angularVelocity); } // Re-enable grab volumes to allow overlap events GrabVolumeEnable(true); }