'Best Practise' and discussion goes on the forum.
What is the best way to implement a more responsive custom drag event with Scroll Rect?
One relatively unaddressed challenge I have noticed while developing for Android in Unity is that while touch detection is rapid, drag detection is not. Precisely, imitating the "flicking" rapid swipe response that is built into phones and is expected from professional utility apps. Rather, by default Unity apps require what feels like several dozen milliseconds (or more) to register a touch before the begin drag method is called. It's undoubtedly irritating. Others pointed it out to me, and I have noticed it myself.
This seems like a simple issue to fix, and I have some ideas if it hasn't been solved already. I thought it would be smart to share the issue and solutions with the rest of the community. Hopefully there is a graceful answer.
I am aware that there are already solutions to improve Scroll Rects but from what I have seen there is not one to address this issue.
My best guess is that the issue belongs to the IBeginDragHandler as that is what is in charge of detecting a drag. So one obvious solution is to make an alternate custom event system that checks for input more frequently (maybe using InvokeRepeating?) and use that to manually call OnBeginDrag from a class that extends ScrollRect (ScrollRectEx, for example). This way, we can forcibly override that method to ensure even a very rapid drag is detected. The built in event would have to be thrown away before it bubbles, of course.
But this sounds expensive. I will try it anyways, but it seems like folly. I am not sure how often Unity checks for the start of a drag, or if perhaps unity has a threshold of input to ignore, but something is causing rapid scrolling to be hit-or-miss, at best.
Follow this Question
Related Questions
UI button events not working on android 3 Answers
Drag a sprite from anywhere in the screen 1 Answer
Android touches pass through UI elements 6 Answers
One of canvas disappears after build on Android 0 Answers
When I publish my iOS/Android app, a transparent game object overlaps other 2D game objects 1 Answer