Пример #1
0
 public override bool ResolveTouch(OVRInput.RawButton button, TBInput.Controller controller)
 {
     OVRInput.Controller ctrl = GetOculusControllerID(controller);
     if (OVRInput.Get(GetTouchEnum(button), ctrl))
     {
         return(true);
     }
     return(false);
 }
Пример #2
0
 public override bool ResolveButtonUp(OVRInput.RawButton button, TBInput.Controller controller)
 {
     OVRInput.Controller ctrl = GetOculusControllerID(controller);
     if (OVRInput.GetUp(button, ctrl))
     {
         return(true);
     }
     return(false);
 }
Пример #3
0
 private void InitControllerScheme()
 {
     if (handOrientation == HandOrientation.Right)
     {
         _indexTrigger = OVRInput.RawButton.RIndexTrigger;
     }
     else
     {
         _indexTrigger = OVRInput.RawButton.LIndexTrigger;
     }
 }
Пример #4
0
    void CheckPress(OVRInput.Controller hand, OVRInput.RawButton button)
    {
        if (OVRInput.GetDown(button))
        {
            Vector3 touchPos = OVRManager.instance.transform.LocalToWorld(OVRInput.GetLocalControllerPosition(hand));

            if ((colliderX.ClosestPointOnBounds(touchPos) - touchPos).sqrMagnitude < TouchRadius * TouchRadius)
            {
                UnityEngine.SceneManagement.SceneManager.LoadScene(SceneIndex);
            }
        }
    }
Пример #5
0
 public bool GetButtonUp(OVRInput.RawButton button)
 {
     if (this.IsOnHeadset())
     {
         return(OVRInput.GetUp(button));
     }
     else
     {
         if (this.buttonMap == null)
         {
             return(false);
         }
         return(this.buttonMap.GetUp(button));
     }
 }
Пример #6
0
    void CheckGrab(OVRInput.Controller hand, OVRInput.RawButton button)
    {
        if (OVRInput.GetDown(button))
        {
            Vector3 touchPos   = OVRManager.instance.transform.LocalToWorld(OVRInput.GetLocalControllerPosition(hand));
            Vector3 grabOffset = touchPos - transform.position;
            if (grabOffset.sqrMagnitude < grabRadius * grabRadius)
            {
                Quaternion invTouchRot = Quaternion.Inverse(OVRManager.instance.transform.LocalToWorld(OVRInput.GetLocalControllerRotation(hand)));

                grabbedBy         = hand;
                grabbedByButton   = button;
                localGrabOffset   = invTouchRot * (transform.position - touchPos);
                localGrabRotation = transform.rotation * invTouchRot;
            }
        }
    }
Пример #7
0
        public static OVRInput.RawAxis2D GetAxis2DEnum(OVRInput.RawButton button)
        {
            switch (button)
            {
            case OVRInput.RawButton.LThumbstick:
                return(OVRInput.RawAxis2D.LThumbstick);

            case OVRInput.RawButton.RThumbstick:
                return(OVRInput.RawAxis2D.RThumbstick);

            case OVRInput.RawButton.RTouchpad:
                return(OVRInput.RawAxis2D.RTouchpad);

            case OVRInput.RawButton.LTouchpad:
                return(OVRInput.RawAxis2D.LTouchpad);
            }
            return(OVRInput.RawAxis2D.None);
        }
Пример #8
0
        public static OVRInput.RawAxis1D GetAxis1DEnum(OVRInput.RawButton button)
        {
            switch (button)
            {
            case OVRInput.RawButton.LHandTrigger:
                return(OVRInput.RawAxis1D.LHandTrigger);

            case OVRInput.RawButton.LIndexTrigger:
                return(OVRInput.RawAxis1D.LIndexTrigger);

            case OVRInput.RawButton.RIndexTrigger:
                return(OVRInput.RawAxis1D.RIndexTrigger);

            case OVRInput.RawButton.RHandTrigger:
                return(OVRInput.RawAxis1D.RHandTrigger);
            }
            return(OVRInput.RawAxis1D.None);
        }
Пример #9
0
 public void EndlessMode(OVRInput.RawButton button)
 {
     if (button == OVRInput.RawButton.A)
     {
         endless = true;
         player.GetComponent <OVRScreenFade>().FadeOut();
         SceneManager.LoadScene("Main");
         bass.TransitionTo(2);
     }
     else if (button == OVRInput.RawButton.B)
     {
         endless  = true;
         hardMode = true;
         player.GetComponent <OVRScreenFade>().FadeOut();
         SceneManager.LoadScene("Main");
         bass.TransitionTo(2);
     }
 }
Пример #10
0
    // Update is called once per frame
    void Update()
    {
        CheckGrab(OVRInput.Controller.LTouch, OVRInput.RawButton.LHandTrigger);
        CheckGrab(OVRInput.Controller.RTouch, OVRInput.RawButton.RHandTrigger);

        if (grabbedByButton != OVRInput.RawButton.None && OVRInput.GetUp(grabbedByButton))
        {
            // release
            grabbedBy       = OVRInput.Controller.None;
            grabbedByButton = OVRInput.RawButton.None;

            float   orbitRadius = (transform.position - Planet.transform.position).magnitude;
            Vector3 axis        = Vector3.Cross(transform.position - Planet.transform.position, transform.position + smoothedGrabVelocity.average - Planet.transform.position);
            orbitRotation = Quaternion.AngleAxis(smoothedGrabVelocity.average.magnitude / (orbitRadius * Time.fixedDeltaTime), axis);
        }

        if (grabbedBy != OVRInput.Controller.None)
        {
            Vector3    oldPosition = transform.position;
            Quaternion oldRotation = transform.rotation;

            Vector3    handPos = OVRManager.instance.transform.LocalToWorld(OVRInput.GetLocalControllerPosition(grabbedBy));
            Quaternion handRot = OVRManager.instance.transform.LocalToWorld(OVRInput.GetLocalControllerRotation(grabbedBy));
            transform.position = handPos + handRot * localGrabOffset;
            transform.rotation = handRot * localGrabRotation;

            spin = transform.rotation * Quaternion.Inverse(oldRotation);

            smoothedGrabVelocity.AddReading(transform.position - oldPosition);
        }
        else if (unfreezeTimestamp != 0 && unfreezeTimestamp < Time.time)
        {
            unfreezeTimestamp = 0;
            float   orbitRadius = (transform.position - Planet.transform.position).magnitude;
            Vector3 axis        = Vector3.Cross(transform.position - Planet.transform.position, transform.position + tractorBeamVelocity - Planet.transform.position);
            orbitRotation = Quaternion.AngleAxis(tractorBeamVelocity.magnitude / (orbitRadius * Time.fixedDeltaTime), axis);
        }
    }
Пример #11
0
        // Specific to Oculus SDK - we need to convert enums into a different format to be read for values other than "button."

        public static OVRInput.RawTouch GetTouchEnum(OVRInput.RawButton button)
        {
            switch (button)
            {
            case OVRInput.RawButton.A:
                return(OVRInput.RawTouch.A);

            case OVRInput.RawButton.B:
                return(OVRInput.RawTouch.B);

            case OVRInput.RawButton.X:
                return(OVRInput.RawTouch.X);

            case OVRInput.RawButton.Y:
                return(OVRInput.RawTouch.Y);

            case OVRInput.RawButton.RThumbstick:
                return(OVRInput.RawTouch.RThumbstick);

            case OVRInput.RawButton.LThumbstick:
                return(OVRInput.RawTouch.LThumbstick);

            case OVRInput.RawButton.RIndexTrigger:
                return(OVRInput.RawTouch.RIndexTrigger);

            case OVRInput.RawButton.LIndexTrigger:
                return(OVRInput.RawTouch.LIndexTrigger);

            case OVRInput.RawButton.LTouchpad:
                return(OVRInput.RawTouch.LTouchpad);

            case OVRInput.RawButton.RTouchpad:
                return(OVRInput.RawTouch.RTouchpad);
            }
            return(OVRInput.RawTouch.None);
        }
Пример #12
0
    /* -------------------------------------------------- */

    /// <summary>
    /// Use this for initialization
    /// </summary>
    void Start()
    {
        _indexTrigerFlag = false;

        _localHandPosition  = Vector3.zero;
        _originHandPosition = Vector3.zero;

        _vibrate = new Vibrate();

        if (isRightHand)
        {
            _indexTrigger   = OVRInput.RawButton.RIndexTrigger;
            _handTrigger    = OVRInput.RawButton.RHandTrigger;
            _downsideButton = OVRInput.RawButton.A;
            _upsideButton   = OVRInput.RawButton.B;
        }
        else
        {
            _indexTrigger   = OVRInput.RawButton.LIndexTrigger;
            _handTrigger    = OVRInput.RawButton.LHandTrigger;
            _downsideButton = OVRInput.RawButton.X;
            _upsideButton   = OVRInput.RawButton.Y;
        }
    }
Пример #13
0
 public override Vector2 ResolveAxis2D(OVRInput.RawButton button, TBInput.Controller controller)
 {
     return(OVRInput.Get(GetAxis2DEnum(button), GetOculusControllerID(controller)));
 }
Пример #14
0
 // Use this for initialization
 void Start()
 {
     instance    = this;
     button      = OVRInput.RawButton.RIndexTrigger;
     laserLength = laser.transform.localScale.y;
 }
 public PhysicalOculusTouchButton(OVRInput.RawButton rawButton)
 {
     this.rawButton = rawButton;
 }
Пример #16
0
 public static bool GetUp(OVRInput.RawButton virtualMask, OVRInput.Controller controllerMask = OVRInput.Controller.Active)
 {
     return(virtualMask == OVRInput.RawButton.Back ? InputDevice.GetButtonUp(GvrControllerButton.App) : false);
 }