我最近决定用Unity 5做一个2D手机游戏。现在我对scrollrect有一个问题。这是一种在手机上很敏感的方式。在windows中,我在滚动内容中的按钮工作得很好。但在我的手机上,我很难按下滚动内容中的按钮。我想这是因为scrollrect在触摸结束之前滚动,所以它注册为拖动,而不是触摸。
我试图在互联网上搜索这个问题,但这似乎是一个2-3年前的问题,应该得到解决。
我希望有人能为我的问题找到答案
谢谢。
发布于 2016-05-24 03:31:20
如果ScrollRect在移动设备上太敏感,那么您必须在移动设备上更改ScrollRect的属性,如scrollSensitivity、elasticity、decelerationRate。您检测到移动设备上是否运行了应用程序,然后更改了这些值。下面的代码应该做it.You可能需要更改的值以满足您的需要。
void Start()
{
if (Application.isMobilePlatform)
{
ScrollRect scrolRect = GameObject.Find("GameObjectScrollRectIsAttachedTo").GetComponent<ScrollRect>();
scrolRect.scrollSensitivity = 0.5f;
scrolRect.elasticity = 0.05f;
scrolRect.decelerationRate = 0.2f;
}
}

发布于 2016-05-24 03:31:38
好了,我找到了我的问题的答案。在阅读了更多的论坛后,我找到了添加事件系统的解决方案。在eventsystem中,我能够修改阈值,这就成功了。
发布于 2020-04-09 00:19:48
手头的实际问题是如何阻止滚动视图从非常小的拖拽。这在移动设备上尤其令人讨厌,特别是当你在滚动视图中有一个按钮时,因为拖动将取消按钮单击。没有必要使用脚本添加阈值,因为事件系统已经有了拖动阈值。将其更改为更高的值以降低敏感度。
对于移动设备,更好的解决方案是从屏幕上获取dpi。
GetComponent<EventSystem>().pixelDragThreshold = baseThreshold*Screen.dpi/baseDPI并在此基础上将eventsystem dragthreshold设置为某个值。
https://stackoverflow.com/questions/37398576
复制相似问题