void Awake() { MakeSingleton(); CurrentGameMode = GameMode.BUILD; /* Setup Controller Events */ RightControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.TriggerPress, true, RightControllerEvents_TriggerDown); RightControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.TriggerPress, false, RightControllerEvents_TriggerUp); RightControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.GripPress, true, RightControllerEvents_GripDown); RightControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.GripPress, false, RightControllerEvents_GripUp); RightControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.TouchpadPress, false, RightControllerEvents_TouchpadUp); LeftControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.TriggerPress, true, LeftControllerEvents_TriggerDown); LeftControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.TriggerPress, false, LeftControllerEvents_TriggerUp); LeftControllerEvents.SubscribeToButtonAliasEvent(VRTK.VRTK_ControllerEvents.ButtonAlias.GripPress, false, LeftControllerEvents_GripUp); /* Setup Controller VRTK scripts */ VRTK.VRTK_InteractGrab rightInteractGrab = RightControllerEvents.GetComponent <VRTK.VRTK_InteractGrab>(); rightInteractGrab.grabButton = VRTK.VRTK_ControllerEvents.ButtonAlias.TriggerPress; RightInteractNearTouch = RightControllerEvents.GetComponent <VRTK.VRTK_InteractNearTouch>(); RightInteractTouch = RightControllerEvents.GetComponent <VRTK.VRTK_InteractTouch>(); RightInteractGrab = RightControllerEvents.GetComponent <VRTK.VRTK_InteractGrab>(); RightAnimator = RightControllerEvents.gameObject.GetComponentInChildren <HandAnimator>(); LeftAnimator = LeftControllerEvents.gameObject.GetComponentInChildren <HandAnimator>(); }
private void replaceSteamControllerModels(GameObject oldLeft, GameObject newLeft, GameObject oldRight, GameObject newRight) { Transform leftParent = oldLeft.transform.parent; Transform rightParent = oldRight.transform.parent; newLeft.transform.SetParent(leftParent, false); newRight.transform.SetParent(rightParent, false); oldLeft.SetActive(false); oldRight.SetActive(false); HandAnimator leftAnimator = leftHandModel.GetComponent <HandAnimator>(); HandAnimator rightAnimator = rightHandModel.GetComponent <HandAnimator>(); leftAnimator.parent = leftParent.gameObject; rightAnimator.parent = rightParent.gameObject; }
void OnTriggerEnter(Collider Other) { HandAnimator hand = Other.gameObject.GetComponent <HandAnimator> (); if (hand != null) { if (hand.thumbsDown()) { this.thumbsDown(); } else if (hand.thumbsUp()) { this.thumbsUp(); } } }
/// <summary> /// /// </summary> protected virtual void Start() { if (animator == null) { animator = transform.parent.GetComponent <HandAnimator>(); //??? } if (handAnchor == null) { handAnchor = transform; } // m_Pose = CrossInputManager.VirtualPoseReference(poseName); m_HandTrans = animator.joints[handType].bone; m_HandCtrl = animator.GetHandController(handType); m_HandLocalRot = m_HandTrans.localRotation; //??? }
void Start() { // Set target direction to the camera's initial orientation. targetDirection = transform.localRotation.eulerAngles; // Gesture Recognizer gesture = new Gesture(); gesture.player = mp; //Steam VR tracked object. trackedObj = GetComponent <SteamVR_TrackedObject>(); //Get references to posing animation objects leftHandAnim = leftHandModel.GetComponent <HandAnimator>(); rightHandAnim = rightHandModel.GetComponent <HandAnimator>(); }
public void Update() { leftGripButtonDown = leftController.GetPressDown(gripButton); leftGripButtonUp = leftController.GetPressUp(gripButton); leftGripButtonPressed = leftController.GetPress(gripButton); rightGripButtonDown = rightController.GetPressDown(gripButton); rightGripButtonUp = rightController.GetPressUp(gripButton); rightGripButtonPressed = rightController.GetPress(gripButton); leftTriggerButtonDown = leftController.GetPressDown(triggerButton); leftTriggerButtonUp = leftController.GetPressUp(triggerButton); leftTriggerButtonPressed = leftController.GetPress(triggerButton); rightTriggerButtonDown = rightController.GetPressDown(triggerButton); rightTriggerButtonUp = rightController.GetPressUp(triggerButton); rightTriggerButtonPressed = rightController.GetPress(triggerButton); if (Input.GetKey("w")) { move(mainCamera.transform.forward, mainCamera.transform); } if (Input.GetKey("s")) { move(-mainCamera.transform.forward, mainCamera.transform); } if (Input.GetKey("a")) { move(-mainCamera.transform.right, mainCamera.transform); } if (Input.GetKey("d")) { move(mainCamera.transform.right, mainCamera.transform); } if (Input.GetKeyUp("/")) { //Hack – swap hand models HandAnimator temp = leftHandAnim; leftHandAnim = rightHandAnim; rightHandAnim = temp; } if (Input.GetKey("e")) { handUpdate(); Vector3 pos = rightHandModel.transform.position; gesture.StartGestureRecognition(new Vector2(pos.x, pos.y)); } else if (Input.GetKeyUp("e")) { gesture.StopGestureRecognition(); } else { mouseUpdate(); } /* Hand posing */ if (leftGripButtonDown) { leftHandAnim.setPoint(); } if (leftTriggerButtonDown) { leftHandAnim.setThumbsUp(); } if (!leftGripButtonPressed && !leftTriggerButtonPressed) { leftHandAnim.setIdle(); } if (rightGripButtonDown) { rightHandAnim.setPoint(); } if (rightTriggerButtonDown) { rightHandAnim.setThumbsUp(); } if (!rightGripButtonPressed && !rightTriggerButtonPressed) { rightHandAnim.setIdle(); } if (leftGripButtonPressed) { Vector3 pos = LeftController.transform.position; gesture.StartGestureRecognition(new Vector2(pos.x, pos.y)); } else if (leftGripButtonUp) { gesture.StopGestureRecognition(); } if (rightGripButtonPressed) { Vector3 pos = RightController.transform.position; gesture.StartGestureRecognition(new Vector2(pos.x, pos.y)); } else if (rightGripButtonUp) { gesture.StopGestureRecognition(); } if (leftController == null || rightController == null) { Debug.Log("Controller not initialized"); return; } logControllerInteraction(leftController); logControllerInteraction(rightController); }