Esempio n. 1
0
    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>();
    }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
    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;          //???
 }
Esempio n. 5
0
    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>();
    }
Esempio n. 6
0
    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);
    }