public Vector3 GetHandOffset() {
if (controller_ == null || hand_ == null)
return Vector3.zero;
Vector3 additional_movement = controller_.handMovementScale - Vector3.one;
Vector3 scaled_wrist_position = Vector3.Scale(additional_movement, hand_.WristPosition.ToUnityScaled(mirror_z_axis_));
return controller_.transform.TransformPoint(scaled_wrist_position) -
controller_.transform.position;
}