C# Unity mobile scrollrect太敏感

C# Unity mobile scrollrect太敏感,c#,unity3d,unity5,C#,Unity3d,Unity5,我最近决定用Unity 5制作一个2D手机游戏。 现在我有一个scrollrect的问题。这是一种在手机上保持敏感的方法。在windows上,滚动内容中的“我的按钮”工作正常。但在我的手机上,我很难按下滚动内容中的按钮。我认为这是因为scrollrect在触摸结束前滚动,所以它注册为拖动,而不是触摸 我试图在互联网上搜索这个问题,但这似乎是一个2-3年前的问题,应该得到解决 我希望有人能回答我的问题 谢谢。如果移动设备上的ScrollRect过于敏感,则必须更改移动设备上的ScrollRect的

我最近决定用Unity 5制作一个2D手机游戏。 现在我有一个scrollrect的问题。这是一种在手机上保持敏感的方法。在windows上,滚动内容中的“我的按钮”工作正常。但在我的手机上,我很难按下滚动内容中的按钮。我认为这是因为scrollrect在触摸结束前滚动,所以它注册为拖动,而不是触摸

我试图在互联网上搜索这个问题,但这似乎是一个2-3年前的问题,应该得到解决

我希望有人能回答我的问题


谢谢。

如果移动设备上的
ScrollRect
过于敏感,则必须更改移动设备上的
ScrollRect
的属性,例如
scrollSensitivity
弹性
减速率
。您检测到应用程序是否在移动设备上运行,然后更改值。下面的代码应该可以做到这一点。您可能需要根据需要更改这些值

void Start()
{
  if (Application.isMobilePlatform)
  {
      ScrollRect scrolRect = GameObject.Find("GameObjectScrollRectIsAttachedTo").GetComponent<ScrollRect>();
      scrolRect.scrollSensitivity = 0.5f;
      scrolRect.elasticity = 0.05f;
      scrolRect.decelerationRate = 0.2f;
  }
}
void Start()
{
if(Application.isMobilePlatform)
{
ScrollRect scrolRect=GameObject.Find(“GameObjectScrollRectIsAttachedTo”).GetComponent();
scrolRect.scrollSensitivity=0.5f;
收缩弹性=0.05f;
SCROLECT.减速率=0.2f;
}
}

如果移动设备上的
ScrollRect
过于敏感,则必须更改移动设备上
ScrollRect
的属性,例如
scrollSensitivity
弹性
减速率
。您检测到应用程序是否在移动设备上运行,然后更改值。下面的代码应该可以做到这一点。您可能需要根据需要更改这些值

void Start()
{
  if (Application.isMobilePlatform)
  {
      ScrollRect scrolRect = GameObject.Find("GameObjectScrollRectIsAttachedTo").GetComponent<ScrollRect>();
      scrolRect.scrollSensitivity = 0.5f;
      scrolRect.elasticity = 0.05f;
      scrolRect.decelerationRate = 0.2f;
  }
}
void Start()
{
if(Application.isMobilePlatform)
{
ScrollRect scrolRect=GameObject.Find(“GameObjectScrollRectIsAttachedTo”).GetComponent();
scrolRect.scrollSensitivity=0.5f;
收缩弹性=0.05f;
SCROLECT.减速率=0.2f;
}
}

好的,我找到了问题的答案。在阅读了更多的论坛之后,我想到了添加事件系统的解决方案。在eventsystem中,我可以修改阈值,这就成功了。

好的,我找到了问题的答案。在阅读了更多的论坛之后,我想到了添加事件系统的解决方案。在eventsystem中,我能够修改阈值,这就成功了。

这里的实际问题是如何阻止scrollview从非常小的拖动量滚动。这在移动设备上尤其令人讨厌,尤其是当您在scrollview中有一个按钮时,因为拖动会取消按钮单击。 不需要使用脚本添加阈值,因为事件系统已具有拖动阈值。将其更改为更高的值以降低灵敏度

一个更好的移动解决方案是从屏幕上获取dpi

GetComponent<EventSystem>().pixelDragThreshold = baseThreshold*Screen.dpi/baseDPI
GetComponent().pixelDragThreshold=baseThreshold*Screen.dpi/baseDPI

并基于此将eventsystem dragthreshold设置为某个值。

这里的实际问题是如何阻止scrollview从非常小的拖动量滚动。这在移动设备上尤其令人讨厌,尤其是当您在scrollview中有一个按钮时,因为拖动会取消按钮单击。 不需要使用脚本添加阈值,因为事件系统已具有拖动阈值。将其更改为更高的值以降低灵敏度

一个更好的移动解决方案是从屏幕上获取dpi

GetComponent<EventSystem>().pixelDragThreshold = baseThreshold*Screen.dpi/baseDPI
GetComponent().pixelDragThreshold=baseThreshold*Screen.dpi/baseDPI

并将eventsystem dragthreshold设置为基于该值的某个值。

lol在我回答后10秒发布。事实上,我认为修改这些值可以解决您的问题。增加事件系统的“拖动阈值”对我来说效果最好。thankslol在我回答后10秒发了帖子。事实上,我认为修改这些值可以解决您的问题。增加事件系统的“拖动阈值”对我来说效果最好。谢谢,我认为这个答案已经被否决了。我推荐。我想这个答案已经被否决了。我推荐。baseDPI在这里的价值是什么?您之前是否对其进行了初始化,还是使用了公式?这里baseDPI的值是多少?您是较早地初始化它还是使用了公式?