The HVRHandGrabber components reside on the hand rigid body objects. It is important to note how the grab flow works.
The hand will move to the object to grab it and immediately create a Final strong joint with the object. After which the hand returns to the controller via physics.
This will happen if:
- HandGrabs is enabled on the HVRHandGrabber.
- HVRGrabbable is marked Stationary
- HVRGrabbable is Joint based without a rigid body.
- The object being grabbed is already held with one hand.
The grabbed object will be pulled towards the hand using the HVRJointSettings supplied in the “Pulling Settings” field.
This approach uses physics forces which prevents objects from getting stuck (which would require other systems to handle unstucking objects) and prevents hitting surrounding objects with infinite force while the object moves and rotates into position.
If the object can't move into pose position due to collision, the hand will go to retrieve the object after a customizable Timeout.
Each HVRGrabbable can have this pull joint setting overridden, which should be done for objects greater than 2 mass.
The settings of the joint can be overridden globally @ HVRSettings.DefaultJointSettings or per grabbable's JointOverride field.