1,Leap Motion 之 准备工作。

a, 官方文档链接, 手势对应类的结构数据。

https://leapmotion.github.io/UnityModules/ 

这儿对leap手势的所有官方资料,非常不错。

https://leapmotion.github.io/UnityModules

b, Interaction-Engine.

c, Getting Started (Interaction Engine)

2,每次在unity中使用时先一定要把leap motion control panel打开。

2 获得手的相关信息

using System.Collections;
using System.Collections.Generic;
using UnityEngine;using Leap;
using Leap.Unity;public class LeapGestures : MonoBehaviour {private LeapProvider mProvider;private Frame mFrame;private Hand mHand;[Tooltip ("Velocity (m/s) of Palm ")]public float smallestVelocity = 0.4f;//手掌移动的最小速度[Tooltip ("Velocity (m/s) of Single Direction ")]public float deltaVelocity = 0.8f;//单方向上手掌移动的速度[Tooltip ("Distance(m) of Fingertip to Palm")]public float deltaCloseFinger = 0.5f;//指尖到手掌中心的距离阈值// Use this for initializationvoid Start () {mProvider = FindObjectOfType<LeapProvider>() as LeapProvider;}// Update is called once per framevoid Update () {mFrame = mProvider.CurrentFrame;//获取当前帧//获得手的个数//print ("hand num are " + mFrame.Hands.Count);if (mFrame.Hands.Count > 0) {foreach (var item in mFrame.Hands) {int numFinger = item.Fingers.Count;print ("item is  " + numFinger);}}   }
}
 
mFrame = mProvider.CurrentFrame;//获取当前帧//获得手的个数//print ("hand num are " + mFrame.Hands.Count);if (mFrame.Hands.Count > 0) {foreach (var item in mFrame.Hands) {int numFinger = item.Fingers.Count;//print ("item is  " + numFinger);//print("hand are " + isOpenFullHand (item));if (item.IsLeft) {//print ("isOpenFullHands is  " + isOpenFullHands(item));print ("isOpenFullHand is  " + isOpenFullHand(item));}   }}
//判断有多少个手指是伸开的,以及伸开的手指是哪个public int extendFingerNum(Hand hand){int extendedFingers = 0;//一个手指的一次遍历for (int f = 0; f < hand.Fingers.Count; f++){Finger digit = hand.Fingers[f];if (digit.IsExtended) {print ("Fingers is " + digit);extendedFingers++;}}return extendedFingers;}

3,其它函数

hand.GrabStrength

通过握拳晃动时,它的Strength值大多数情况下在0.8-0.9范围内。通过该事件响应操作便会不精确。通常情况下,我们只需要两种状态: 

握拳事件Strength值为:1;非握拳状态的值为:0。 

GrabStrength float ⼿的姿势判断,⼿全张开状态为0,握拳时为1,范围是[0,1]
GrabAngle float
所有⼿指的弯曲程度。通过观察四个⼿指的⽅向和⼿的⽅向
之间的夹⻆来计算这个⻆。当计算⻆度时,不考虑拇指。这
个⻆度是⼀个开着的⼿的0弧度,当这个姿势是⼀个紧的拳
头时,它就会到达pi弧度。
PinchStrength float “捏”的⼒度,⼿掌摊开时为0,最⼤为1;针对拇指与同⼀只
⼿的任意其他⼿指的组合
PinchDistance float 拇指和⻝指的距离,⽤来判断“捏”这个操作。
Rotation Vector3 返回⼿掌旋转的四元数
IsLeft bool 判断是否是左⼿
TimeVisible float 返回⼿在controller中可⻅的持续时间
Fingers List<Finger> ⼿指列表,从拇指到⽆名指排列
PalmNormal Vector3 ⼿掌法向量,如果你的⼿是平的,这个⽮量会向下,或者是你⼿掌的前表⾯。你可以⽤⼿掌法向量来计算⽔平⾯上的⼿掌的滚动⻆度。
PalmPosition Vector3 ⼿掌中⼼在controller坐标系中的位置(mm级)
PalmVelocity Vector3 ⼿掌位置的速度,mm/s
PalmWidth float ⼿掌在平的位置时,⼿掌的估计宽度。
WristPosition 返回⼿腕的位置

4 Unity3D使用左手坐标系统,而Leap Motion API使用右手坐标系统。(基本上,在相反的方向。Z轴点)统一使用米的默认单位,而Leap Motion API使用毫米。插件脚本内部转换跟踪数据使用左手坐标系和尺度距离值米。

5, this.cube.transform.rotation = Quaternion.EulerRotation(h.Direction.Pitch, h.Direction.Yaw, h.Direction.Roll); 

6, Unity集成Leap Motion

7, Leap Motion这三个实验,告诉你手势还能实现这些操作

对应的英文官方文档 (Summoning and Superpowers: Designing VR Interactions at a Distance)

8,LEAPMotion VR 各种手势的判断。

9,官网的例子https://gallery.leapmotion.com/

10, unity 下载leap的官网。

leapmotion 初识相关推荐

  1. day3----编码-集合-深浅copy-文件操作-函数初识

    day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...

  2. ⑥python模块初识、pyc和PyCodeObject

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  3. 初识java类的接口实现

    初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...

  4. vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码

    大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...

  5. 16.1、python初识面向对象(1)

    初识面向对象 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人 ...

  6. 精通Python网络爬虫:核心技术、框架与项目实战.1.1 初识网络爬虫

    摘要 网络爬虫也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理.在大数据时代,信息的采集是一项重要的工作,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.此时,我们 ...

  7. 初识mysql数据字段属性_MySQL数据库~~~~初识、基础数据类型

    一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...

  8. Nancy in .Net Core学习笔记 - 初识Nancy

    原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...

  9. Python 函数初识 (1)

    一.今日主要内容 认识函数 函数:对功能或者动作的封装(定义) 语法: def 函数名字(形参) 函数体 函数的调用格式:函数名(实参) 函数的返回值 关键字:return 终止函数的运行 1.函数内 ...

  10. 细细品味大数据--初识hadoop

    初识hadoop 前言 之前在学校的时候一直就想学习大数据方面的技术,包括hadoop和机器学习啊什么的,但是归根结底就是因为自己太懒了,导致没有坚持多长时间,加上一直为offer做准备,所以当时重心 ...

最新文章

  1. H5用户地址位置选择地点获取经纬度(效果图)
  2. Console-算法-冒泡排序法|倒水法
  3. 解读晦涩的存储技术缩略语
  4. 24张GIF图,让你秒懂非标自动化机构的原理
  5. linux远程登录x11,windows linux 通过SSH X11Forwrding 使用图形化界面
  6. 分分钟收入上万 她做到了网红最难的粉丝沉淀
  7. pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
  8. C# int[,] 和 int[][]
  9. java 读取svg元素_svg动态添加元素
  10. Mono SVN最新代码或者Mono 1.2.5 支持IronPython 2.0
  11. 限时一个月,拯救三体文明!ETO大数据人才召集计划!
  12. 企业Web应用中的敏捷测试和瀑布测试
  13. iOS上绘制自然的签名-b
  14. Removing Nesting By Returning Early
  15. 625某电商网站数据库宕机故障解决实录(上)
  16. C语言的隐式类型转换
  17. Oracle与MySQL的几点区别
  18. 计算机与软件学院辅导员陈伯亨,十年桃李满园———计算机科学与软件工程系隆重举行十周年校庆校友会...
  19. python语言提供的数字类型有哪些_Python语言中数字类型有哪些?
  20. 工具传送门(持续更新)

热门文章

  1. quot在c语言里用法,C语言中“#”和quot;##quot;的用法
  2. 计算机应软件与理论学什么,计算机软件与理论
  3. android 动态申请camera权限,GitHub - yinzhengwei/permissiongranted: Android动态权限检测和申请管理...
  4. python计算无穷级数求和,无穷级数求和的积分审敛法
  5. java大文件排序_java对大文件进行归并排序(利用胜者树)
  6. js实现超出一定字数隐藏并用省略号...代替,点击后又可进行展开和收起,
  7. Linux 实用工具vi
  8. eclipse 批量 查询 替换
  9. Mongoose学习参考文档
  10. JS客户端学习笔记二