我最近决定使用Unity 5制作2D手机游戏。 现在我有一个滚动问题。它是移动敏感的方式。在Windows上我的按钮在scrollcontent工作完美。但是在我的手机上我很难按下滚动条中的按钮。我认为这是因为滚动在触摸结束之前滚动,因此它记录为拖动,而不是触摸。
我试图在互联网上搜索这个问题,但似乎是一个应该修复的2-3岁问题。
我希望有人能解决我的问题,
感谢。
答案 0 :(得分:3)
如果ScrollRect
在移动设备上过于敏感,那么您必须在移动设备上更改ScrollRect
的属性,例如scrollSensitivity
,elasticity
,decelerationRate
设备。您检测到app是否在移动设备上运行,然后您更改了值。下面的代码应该这样做。您可能需要根据需要更改值。
void Start()
{
if (Application.isMobilePlatform)
{
ScrollRect scrolRect = GameObject.Find("GameObjectScrollRectIsAttachedTo").GetComponent<ScrollRect>();
scrolRect.scrollSensitivity = 0.5f;
scrolRect.elasticity = 0.05f;
scrolRect.decelerationRate = 0.2f;
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
这里实际遇到的问题是如何在极少的拖动力下阻止滚动视图滚动。这在移动设备上尤其令人讨厌,尤其是在滚动视图中有按钮的情况下,因为拖动将取消按钮的单击。 无需在脚本中添加阈值,因为事件系统已经具有拖动阈值。将其更改为更高的值以降低灵敏度。
一个更好的移动解决方案是从屏幕上获取dpi
GetComponent<EventSystem>().pixelDragThreshold = baseThreshold*Screen.dpi/baseDPI
,然后根据该值将事件系统拖动阈值设置为某个值。