Manomotion 实现AR手势互动-解决手势无效的问题
之前就���过 Manomotion ,现在有新需求,重新接入发现不能用了,不管什么办法,都识别不了手势,我记得当初是直接调用就可以的。
经过研究发现,新版本SDK改了写法。下边就写一下新版本的调用,并且实现一个简单的工具脚本。初学者可以参考一下。
主要步骤包含:
1.官网注册
2.创建APP
3.获得APIKey
4.下在SDK导入项目
5.测试使用。
工具脚本如下:
using UnityEngine; public class ManoHandDetection : MonoBehaviour { private bool pick = false; public bool isPick { get { if (pick) { pick = false; return true; } return false; } } private bool drop = false; public bool isDrop { get { if (drop) { drop = false; return true; } return false; } } private bool click = false; public bool isClick { get { if (click) { click = false; return true; } return false; } } private void Start() { ManomotionManager.Instance.ShouldCalculateGestures(true); } // Update is called once per frame void Update() { GestureInfo gestureInfo = ManomotionManager.Instance.Hand_infos[0].hand_info.gesture_info; DetectionGestureInfo(gestureInfo); } private void DetectionGestureInfo(GestureInfo gestureInfo) { if (gestureInfo.mano_gesture_trigger != ManoGestureTrigger.NO_GESTURE) { switch (gestureInfo.mano_gesture_trigger) { case ManoGestureTrigger.DROP: drop = true; break; case ManoGestureTrigger.PICK: pick = true; break; } } } public Vector3 Get_PalmPos() { return ManomotionManager.Instance.Hand_infos[0].hand_info.tracking_info.palm_center; } public Vector3 Get_POI() { return ManomotionManager.Instance.Hand_infos[0].hand_info.tracking_info.poi; } }
需要注意的是:
1.新版SDK 需要在Start调用一次Gesture 功能打开开关。
ManomotionManager.Instance.ShouldCalculateGestures(true);
这个开关可以动态打开、关闭。
2.包名要和Manomotion官网保持一致。
3.Key填写的位置ManomotionManager.cs 脚本上。
The End