private void SetControlPositionMode(VR_Controller controller, MotionControlMode mode) { if (controller.ControlPositionMode != mode) { controller.SetPositionControlMode(mode); controller.SetRotationControlMode(mode); } }
//should the position be controller by the engine or you want to control it manually, //useful for snap the hand to certain positions public void SetPositionControlMode(MotionControlMode controlMode) { controlPositionMode = controlMode; transform.parent = controlMode == MotionControlMode.Free ? null : originalParent; if (controlMode == MotionControlMode.Engine) { transform.localPosition = initialPosition; transform.localRotation = initialRotation; } }
private void Setup() { UsePositionOffset = true; UseRotationOffset = true; controlPositionMode = MotionControlMode.Engine; controlRotationMode = MotionControlMode.Engine; #if SDK_STEAM_VR SteamVR_Behaviour_Pose[] controllers = FindObjectsOfType <SteamVR_Behaviour_Pose>(); for (int n = 0; n < controllers.Length; n++) { if (controllers[n].inputSource == SteamVR_Input_Sources.RightHand && controllerType == VR_ControllerType.Right) { steamController = controllers[n]; } else if (controllers[n].inputSource == SteamVR_Input_Sources.LeftHand && controllerType == VR_ControllerType.Left) { steamController = controllers[n]; } } #endif }
public void SetPositionAndRotationControlMode(MotionControlMode positionControlMode, MotionControlMode rotationControlMode) { SetPositionControlMode(positionControlMode); SetRotationControlMode(rotationControlMode); }
public void SetRotationControlMode(MotionControlMode controlMode) { controlRotationMode = controlMode; }