不知不觉研究leap motion开发一个月了,但是最近才发现在开发中严重的错误,就是用VR方式的手势检测做了桌面方式的手势检测,以至于双手检测的时候总会出现丢手的情况,用官方案例也是丢手,无知的想就是leap motion的问题,连官方案例都总是丢手,实际上是我的方式就错了,所以大家在做桌面开发的时候先看官方案例中桌面版的例子,就不要用VR版的了,之前写的两篇都是VR版的手势检测。现在写桌面版的手势检测。
桌面版的手势检测也有两种方式:
- 使用hand.GetA该函数返回除了大拇指以外的其余四指的平均弯曲程度
基本上可以检测石头,布等手势;例如石头手势该函数返回的值是3.14,布的手势大于0小于0.3有一定的范围。
- 使用单个手指的弯曲度来判断手势。参考代码如下:
public class test : MonoBehaviour { private LeapProvider mProvider; private Frame mFrame; private Hand hand; [SerializeField] private float average; private bool isYe = false; // Use this for initialization void Start () { mProvider = FindObjectOfType<LeapProvider>() as LeapProvider; } // Update is called once per frame void Update() { //获取当前帧 mFrame = mProvider.CurrentFrame;