使用Unity检测长按长距离

时间:2016-02-05 20:13:49

标签: c# input unity3d xna tap

我目前正在寻找一种可以检测长按和水龙头的解决方案,但我有点丢失,我知道它与deltaPositiondeltaTime有关。< / p>

有人可以向我解释一下吗?我是Unity的新人。

用于拖动按钮,所以我会按下按钮几帧,如果我将它拖动几个像素,它会输入DRAG_STATE,如果我点击它会进入TAPPED_STATE

注意:

  • 我也必须检测距离

  • 我无法使用&#34; Touch&#34;函数,我需要用鼠标模拟它

1 个答案:

答案 0 :(得分:1)

当您检测到印刷机时,则存储该位置。在后续帧上,检查位置是否已更改:

const __u8 ip_tos2prio[16]={0,0,0,0,2,2,2,2,6,6,6,4,4,4,4};

因此,在输入时,您只需记录位置,这是用户按下按钮的时间。该框架上没有其他任何事情发生。

下一帧,如果用户持续按下,我们将比较前一个(初始)位置和当前位置。这是您应该在任何需要的地方传递该距离的地方。如果距离足够小,您可以放弃拖动或忽略它。

最后,当用户释放按钮时,我们将重置为0.您可能需要重置为某个负值以确保该值不是可用值(因此不太可能是0)。