MixedRealityToolkit-Unity icon indicating copy to clipboard operation
MixedRealityToolkit-Unity copied to clipboard

MRTK3: Scrolling Views do not work with user input.

Open SimonDarksideJ opened this issue 3 years ago • 5 comments

Describe the bug

A clear and concise description of what the bug is. Tested all of the available MS examples on using a Scrolling View with the MRTK3, yet none actually function with user input.

Valiated:

  • Hero Panel in CanvasExamples
  • VirtualizedScrollRectList - turning off the script that automatically moves the view
  • Setting up a new ScrollRect with MRTK3 buttons

All the input seems to be captured by the content and none of the scroll behaviour makes it's way up to the scrollrect. Even using a Scrollbar does nothing.

To reproduce

Steps to reproduce the behavior:

  1. Open MRTK3 VirtualizedScrollRectList
  2. Disable the Virtualized Scroll Rect List Tester component on the Scroll View (to allow for manual input)
  3. TRY to scroll using far pointers or near hand interactions
  4. See error

Expected behavior

ScrollRects should be interactable with using input via near hands or far pointers, to scroll the view.

Your setup (please complete the following information)

  • Unity Version [e.g. 2020.3.36f1]
  • MRTK Version [e.g. v3.0] - latest

Target platform (please complete the following information)

  • HoloLens 2

SimonDarksideJ avatar Jul 12 '22 19:07 SimonDarksideJ

A bit of an update, after some tweaking of the controls I returned to testing and found it was possible to scroll in the view (quite a relief that it is even possible), however this still leaves it practically unusable. I suspect if you manage to grab an item by its shadow or something a few pixels wide of the buttons collider, you can get an interaction back to the panel behind it and actually scroll.

Ideally though, if a Selectable is Grabbed and the use attempts to drag, then this input should be fed through to the parent scrolling area (if there is one), so that scrolling is possible wherever you drag in a Scrollable area.

SimonDarksideJ avatar Jul 12 '22 23:07 SimonDarksideJ

I have a video from Simon if anyone on the MRTK team needs to see it. Just let me know over Teams if so.

jessemcculloch avatar Jul 13 '22 00:07 jessemcculloch

@SimonDarksideJ, Scrolling is not yet implemented for this preview release. I've been working on it for the past few weeks, stay tuned!

There's a reason this is still in preview 😉

Zee2 avatar Jul 13 '22 17:07 Zee2

Tracking this work in #10795 !

Zee2 avatar Aug 09 '22 02:08 Zee2

Closing as duplicated from the PR. I'll be posting additional updates over on the PR page.

Zee2 avatar Aug 09 '22 02:08 Zee2

@srinjoym can you look into Finn's PR and see what it'll take to bring this into GA

AMollis avatar Mar 02 '23 22:03 AMollis

Tested out Finn's draft PR today. The implementation adds a Scrollable script to allow interactors to move ScrollRect's. The Scrollable script inherits from PressableButton and as far as I can tell makes the whole scroll area a button. The Scrollable script listens for touch events on the button and calculates the scroll delta frame to frame. This works pretty well for scrolling with both poke and far interactors.

There are a couple of issues right now:

  1. Far interactors are not able to click buttons inside the ScrollRect. Not sure if there's a way to circumvent this, likely due to the nested buttons interfering with each other.
  2. Trying to poke scroll a list causes the inner buttons to get clicked. We should try to disable the inner button click events if we detect an active scroll.

srinjoym avatar Apr 05 '23 19:04 srinjoym

MRTK 2 had both poke scrolling and bubble up ray scrolling. The implementation wasn't ideal either as the inner buttons still got clicked when trying to scroll

srinjoym avatar Apr 12 '23 17:04 srinjoym

Based on the investigation above, I'd say we need about 2 weeks to either fix this implementation or prototype new scroll interactions. I'm moving this task back to planned

srinjoym avatar Apr 17 '23 17:04 srinjoym

An experimental feature has been added for this.

  • https://github.com/microsoft/MixedRealityToolkit-Unity/pull/11642

AMollis avatar Jun 27 '23 17:06 AMollis