protected override void OnEnable() { base.OnEnable(); IKCtrl.Show(); if (_Canvas) { _Canvas.gameObject.SetActive(true); } }
protected override void OnDisable() { base.OnDisable(); Owner.StopRumble(_Rumble); if (!(Owner.Other.ActiveTool is IKTool)) { IKCtrl.Hide(); } if (_Canvas) { _Canvas.gameObject.SetActive(false); } }
protected override void OnFixedUpdate() { base.OnFixedUpdate(); if (Tracking.isValid) { var device = Controller; if (device.GetPressDown(EVRButtonId.k_EButton_SteamVR_Trigger)) { _HoverObject = FindNearestHandle(); if (!_HoverObject) { return; } _Manager = (_GuideDriveManager.GetValue(_HoverObject.GetComponent <GuideDrive>()) as GuideDriveManager); _PrevPos = transform.position; _PrevRot = transform.rotation; _Dragging = true; Owner.StartRumble(_Rumble); } if (_HoverObject) { if (device.GetPress(EVRButtonId.k_EButton_SteamVR_Trigger)) { _Manager.DriveMovePosition(transform.position - _PrevPos); var rotDiff = (transform.rotation) * Quaternion.Inverse(_PrevRot); _Manager.DriveMoveRotation(Quaternion.Inverse(_Manager.rotRoot.rotation) * rotDiff * _Manager.rotRoot.rotation); _PrevPos = transform.position; _PrevRot = transform.rotation; } if (device.GetPressUp(EVRButtonId.k_EButton_SteamVR_Trigger)) { _Dragging = false; Release(); Owner.StopRumble(_Rumble); } } if (device.GetPressDown(EVRButtonId.k_EButton_SteamVR_Touchpad)) { if (IKCtrl.Visibility == IKCtrl.IKVisibility.Deactivated) { IKCtrl.Enable(); } else { IKCtrl.Toggle(); } } if (device.GetPressDown(EVRButtonId.k_EButton_Grip)) { if (IKCtrl.Visibility == IKCtrl.IKVisibility.Deactivated) { IKCtrl.Enable(); } else { IKCtrl.Disable(); } } } }