Unity C#:滑动原因GetMouseButtonDown(0)

问题描述 投票:0回答:3

我有一个可以识别swiping输入的脚本。现在开始滑动时,它还会触发Input.GetMouseButtonDown(0)。您能告诉我如何删除来自滑动的Input.GetMouseButtonDown(0)吗?

通过该滑动,游戏暂停了。 (使用Time.timeScale = 0f;)恢复后,在暂停游戏之前,从Input.GetMouseButtonDown(0)触发了操作。

我的想法:使用TouchPhase.Stationary还是寻找快捷键?

感谢:)

c# unity3d input swipe
3个回答
0
投票

在我头顶上,您可以:

  1. 致电Input.ResetInputAxes;它将清除一帧的所有输入标志。
  2. 设置一个标志,说明已处理了滑动,并在其他地方检查Input.ResetInputAxes时检查它。

两者都需要确保滑动检测发生在之前您检查Input.GetMouseButtonDown(0)

确保它的一种方法是使用Unity的Input.GetMouseButtonDown(0)


0
投票

有一种更优雅的方法。

转到编辑->项目设置->输入并删除GetMouseButton(0)或删除其输入。


0
投票

我建议根本不使用Input类,这会引起很多问题,最好在UI上使用实现IPointerDownHandler,IPointerUpHandler的脚本在脚本上单独设置RaycastTarget,这将确保当前只有一个RaycastTarget正在处理您的触摸。即使某些RaycastTarget应该已经消耗了您的事件,Input.GetMouseButton也会返回true。

© www.soinside.com 2019 - 2024. All rights reserved.