Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
craigasanford's avatar
craigasanford
Honored Guest
6 years ago

Hand tracking right index pinch counts as button press?

So I have a VRTK (3.3) teleporter pointer setup to work with the controller left button One press. When I setup hand tracking using the OVRHandPrefab and set the Oculus manager to Hands only for some crazy reason doing a Pinch with my right hand activates the teleporter. I cannot figure out why!! The only scripts related to hand tracking i have are on the prefab. 

And really I want to know HOW its simulating the button press / activating the teleporter so I can use pinches to simulate other button presses!

Anyone have a clue how/why this is happening?

5 Replies

Replies have been turned off for this discussion
  • Hi have you figured this out? Do you have an update on this? Thanks.

  • Anonymous's avatar
    Anonymous

    Index finger pinch on the "primary" hand generates an OVRInput.Button.One event and index finger pinch on the "secondary" hand generates a OVRInput.Button.Three event. The secondary hand also generates a OVRInput.Button.Start event when you perform a system gesture on that hand.

     

    OVRInput.Get[Down/Up](OVRInput.Button.One, OVRInput.Controller.Hands)
    OVRInput.Get[Down/Up](OVRInput.Button.Three, OVRInput.Controller.Hands)
    OVRInput.Get[Down/Up](OVRInput.Button.Start, OVRInput.Controller.Hands) // System gesture on secondary hand

    VRTK must be reading these values somewhere. You can swap which hand is "primary" in the device settings hand tracking options. "Primary" hand is the one with the Oculus icon when you perform a system gesture.

     

    • Mikyjax's avatar
      Mikyjax
      Protege

      Hello,

      I just discovered that behaviour, is there a way to disable it? I'm building a game using concurrent hands & controllers tracking and I need those buttons to remains controllers only. This is sending a lot of A & X button presses accidentally.

      Thanks

  • Hi craigasanford (and others in this thread).

    I have come across this OVRInput.Get issue recently too. It looks like the mask for OVRInput.Get is not working as expected. If you use 

    OVRInput.Get(OVRInput.Button.One, OVRInput.Controller.RTouch)

    You will still get a Button A press even if it was a pinch, likewise if you do 
    ```
    OVRInput.Get(OVRInput.Button.One, OVRInput.Controller.RHand)
    ```
    You will get a button press in the hand when pressing button A.

    It seems this has been the case for a while, but Concurrent Hands have surfaced it more clearly. For now you should be able to check if a Controller is Connected using `OVRInput.GetConnectedControllers()` to decide if the button was a Controller Press or a Hand Pinch. But hopefully the core issue can be remedied soon.