Unity Kinect 使用记录(二)

第一步:SDK导入

1、导入kinect sdk (Kinect v2 Examples with_2.13)。

2、导入后文件

3、场景挂载Kinect Manager脚本

 

4、在Kinect Manager脚本的Player Common Gesture项中设置要检测的姿势,否则kinect不检测姿势

 

 5、检测姿势脚本:只要挂载Kinect Manager脚本和下方 Lesson 脚本即可检测相应姿势。

 

public class Lesson : MonoBehaviour, KinectGestures.GestureListenerInterface
{
    //用户离开
    public void UserLost(long userId, int userIndex)
    {
        EventCenterManager.Instance.Dispatch(E_KinectCommend.UserLost);
    }
    //检测到用户
    public void UserDetected(long userId, int userIndex)
    {
        EventCenterManager.Instance.Dispatch(E_KinectCommend.UserDetected);
    }
    //手势进行中
    public void GestureInProgress(long userId, int userIndex, KinectGestures.Gestures gesture, float progress, KinectInterop.JointType joint, Vector3 screenPos)
    {

    }
    //手势检测完成
    public bool GestureCompleted(long userId, int userIndex, KinectGestures.Gestures gesture, KinectInterop.JointType joint, Vector3 screenPos)
    {
        Debug.Log("用户所做的姿势类型gesture");
        //用户所做的姿势类型gesture
        switch (gesture)
        {
            case KinectGestures.Gestures.None:
                break;
            case KinectGestures.Gestures.Tpose://T型
                EventCenterManager.Instance.Dispatch(E_KinectCommend.Tpose);
                break;
            case KinectGestures.Gestures.Wave: //挥手
                EventCenterManager.Instance.Dispatch(E_KinectCommend.Wave);
                break;
            case KinectGestures.Gestures.SwipeLeft:
                EventCenterManager.Instance.Dispatch(E_KinectCommend.SwipeLeft);
                break;
            case KinectGestures.Gestures.SwipeRight:
                EventCenterManager.Instance.Dispatch(E_KinectCommend.SwipeRight);
                break;
            case KinectGestures.Gestures.SwipeUp:
                EventCenterManager.Instance.Dispatch(E_KinectCommend.SwipeUp);
                break;
            case KinectGestures.Gestures.SwipeDown:
                EventCenterManager.Instance.Dispatch(E_KinectCommend.SwipeDown);
                break;
            case KinectGestures.Gestures.Jump://跳
                EventCenterManager.Instance.Dispatch(E_KinectCommend.Jump);
                break;
            case KinectGestures.Gestures.Squat: // 蹲下
                EventCenterManager.Instance.Dispatch(E_KinectCommend.Squat);
                break;
            case KinectGestures.Gestures.Run://走
                EventCenterManager.Instance.Dispatch(E_KinectCommend.Run);
                break;
            case KinectGestures.Gestures.MoveLeft:  //左移
                EventCenterManager.Instance.Dispatch(E_KinectCommend.MoveLeft);
                break;
            case KinectGestures.Gestures.MoveRight://右移
                EventCenterManager.Instance.Dispatch(E_KinectCommend.MoveRight);
                break;
            default:
                break;
        }

        return true;
    }
    //手势取消
    public bool GestureCancelled(long userId, int userIndex, KinectGestures.Gestures gesture, KinectInterop.JointType joint)
    {
        return true;
    }

    /*
     * 
RaiseRightHand/RaiseLeftHand 抬起左右手高于肩膀一秒
Psi 举起双手高于肩膀一秒
Tpose T姿势
Stop 右手放下,左手缓慢贴住身侧(腰以下)或者左右调换
Wave 挥手 左右都行
SwipeLeft 右手挥向左侧
SwipeRight 与上面相反
SwipeUp/SwipeDown 左右都行 上下翻动
ZoomOut 一开始左右手合并放在前面,然后向不同方向分开
ZoomIn 一开始两手相距0.7米以上并放在前面,然后慢慢合并
Wheel 左右手在前面相距肩膀宽度距离,软后抓住假想方向盘转动
Jump 在1.5秒内屁股至少在高度上上升了10cm
Squat 蹲下 在1.5秒内屁股至少在高度上下降了10cm
Push 用左手或者右手在1.5秒内向前推
Pull 用左手或者右手在1.5秒内后拉
LeanLeft 右侧肩向前,也就是向左侧身
LeanRight 与上面相反
KickLeft 向前踢左脚
KickRight 向前踢右脚

ShoulderLeftFront左肩向前
ShoulderRightFront右肩向前
LeanLeft,   前后左右倾斜
LeanRight,
LeanForward,
LeanBack,
RaisedRightHorizontalLeftHand 水平举起左右手
RaisedLeftHorizontalRightHand
TouchRightElbow,   触碰左右手肘
TouchLeftElbow,
MoveLeft  左右移动
Moveright
       */
}

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kenan_824

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值