跳跃运动手轻扫
Leap motion Hand swipe
我目前正在 Unity 中开发一个使用跳跃运动滑动手势的应用程序。用手在垂直位置滑动是不可靠的。有人可以帮助使用手而不是手指的滑动手势吗?谢谢
我发现在垂直手的情况下,至少有一根手指会在用户手势开始附近滑动。鉴于此,解决垂直手问题的最简单方法可能是使用内置的滑动手势触发您的滑动行为,然后跟踪手 "manually" 直到您决定滑动结束。例如,您的逻辑可能是这样的:
您的应用有 NOT_SWIPING 和 SWIPING 状态。
在NOT_SWIPING状态下,您将检查每一帧中的内置手势对象。如果有一个滑动手势对象符合您的标准(例如,您可能需要它基本上是水平的),您可以将应用程序设置为 SWIPING 状态,存储 Hand 对象并在您的应用程序中启动受滑动影响的任何反应。
在 SWIPING 状态下,您可以通过检查自上一帧以来手的位置变化来检查手是否仍在滑动。如果您确定手仍在滑动(例如,其运动仍在相对直线上),则可以适当更新应用程序。否则,您将应用状态设置为 NOT_SWIPING 并取消或完成应用定义的滑动行为。
可以扩展此方案以支持不同手的同时滑动,方法是在手尚未滑动时让新的滑动开始。您可能想要制作自己的 Swipe class 并保留一个 Swipe 实例列表来跟踪它。
我目前正在 Unity 中开发一个使用跳跃运动滑动手势的应用程序。用手在垂直位置滑动是不可靠的。有人可以帮助使用手而不是手指的滑动手势吗?谢谢
我发现在垂直手的情况下,至少有一根手指会在用户手势开始附近滑动。鉴于此,解决垂直手问题的最简单方法可能是使用内置的滑动手势触发您的滑动行为,然后跟踪手 "manually" 直到您决定滑动结束。例如,您的逻辑可能是这样的:
您的应用有 NOT_SWIPING 和 SWIPING 状态。
在NOT_SWIPING状态下,您将检查每一帧中的内置手势对象。如果有一个滑动手势对象符合您的标准(例如,您可能需要它基本上是水平的),您可以将应用程序设置为 SWIPING 状态,存储 Hand 对象并在您的应用程序中启动受滑动影响的任何反应。
在 SWIPING 状态下,您可以通过检查自上一帧以来手的位置变化来检查手是否仍在滑动。如果您确定手仍在滑动(例如,其运动仍在相对直线上),则可以适当更新应用程序。否则,您将应用状态设置为 NOT_SWIPING 并取消或完成应用定义的滑动行为。
可以扩展此方案以支持不同手的同时滑动,方法是在手尚未滑动时让新的滑动开始。您可能想要制作自己的 Swipe class 并保留一个 Swipe 实例列表来跟踪它。