Search Issue Tracker

By Design

Votes

0

Found in [Package]

3.0.5

Issue ID

XRIT-175

Regression

No

[Quest] UI registers action at 0.5 Press Point value when it's set to a different value

Package: XR Interaction Toolkit

-

Reproduction steps:
1. Open the attached project "ReproProj"
2. Open the “/Assets/Samples/XR Interaction Toolkit/3.0.3/Starter Assets/DemoScene.unity” Scene
3. Double click “Assets/Samples/XR Interaction Toolkit/3.0.3/Starter Assets/XRI Default Input Actions.inputactions“ to open XR Default Input Actions window
4. In the Action Maps section, select “XRI Right Interaction”
5. In the Actions select “UI Press”
6. In Action Properties, observe that “Press Point” is set to 0.1
7. Enter the Play Mode
8. Go to “Test Modal Window” UI element
9. Open XR Interaction Debugger (Window > Analysis > XR Interaction Debugger)
10. Press anything on the Oculus Controller
11. Expand “Oculus Touch Controller OpenXR”
12. Find the blue Button with the text “Confirm”
13. Observe the XR Interaction Debugger window, while slowly pressing the trigger button of the Oculus controller on the button with the text “Confirm”
14. Observe the Console window, to see when the Button registers an action

Expected result: The Button registers action when the trigger value is 0.1
Actual result: The Button registers action when the trigger value is 0.5

Reproducible with: 3.0.0 (2022.3.40f1), 3.0.5 (2021.3.41f1, 2022.3.40f1, 6000.0.13f1)

Reproducible on:
Windows Standalone Player (VLNQA00379, Oculus (Quest 2), Android 10, CPU: Snapdragon XR2, GPU: Adreno (TM) 650)
Play Mode (VLNQA00379, Oculus (Quest 2), Android 10, CPU: Snapdragon XR2, GPU: Adreno (TM) 650)

Not reproducible with:
Android Player (VLNQA00379, Oculus (Quest 2), Android 10, CPU: Snapdragon XR2, GPU: Adreno (TM) 650)

Testing environment: Windows 10 Enterprise 21H2
Not reproducible on: No other environment tested

  1. Resolution Note:

    This is expected with the Input Action binding type that is selected. By default, when using a Button type Input Action combined with the button control type (TriggerButton in this case), the underlying platform is responsible for telling us whether the value should be 0 or 1 (no in-between values). This is to save on a little bit of calculations, since the underlying platform is doing the work for us. If you want to change the press point, you will need to change the binding to a control type that passes the value for the analog button, in this case it would be "Trigger" instead of "TriggerButton".

    Let's see how to do this with the UI Press and change the press threshold to 0.1. Since you want to override the platform behavior with a custom Interaction, you would pick the specific binding you want to change it for (OpenXR XR Controller TriggerButton for example). Then add the Press Interaction as you did before. Uncheck the Default checkbox and change the Press Point to 0.1. To make this function as expected, you will then want to change the Binding Path itself from "TriggerButton [RightHand XR Controller]" to "Trigger [RightHand XR Controller]". You can look at the binding on the UI Press Value action to see the proper binding path for clarity.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.