leapmotion 初识
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 初识相关推荐
- day3----编码-集合-深浅copy-文件操作-函数初识
day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...
- ⑥python模块初识、pyc和PyCodeObject
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识java类的接口实现
初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...
- vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码
大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...
- 16.1、python初识面向对象(1)
初识面向对象 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人 ...
- 精通Python网络爬虫:核心技术、框架与项目实战.1.1 初识网络爬虫
摘要 网络爬虫也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理.在大数据时代,信息的采集是一项重要的工作,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.此时,我们 ...
- 初识mysql数据字段属性_MySQL数据库~~~~初识、基础数据类型
一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...
- Nancy in .Net Core学习笔记 - 初识Nancy
原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...
- Python 函数初识 (1)
一.今日主要内容 认识函数 函数:对功能或者动作的封装(定义) 语法: def 函数名字(形参) 函数体 函数的调用格式:函数名(实参) 函数的返回值 关键字:return 终止函数的运行 1.函数内 ...
- 细细品味大数据--初识hadoop
初识hadoop 前言 之前在学校的时候一直就想学习大数据方面的技术,包括hadoop和机器学习啊什么的,但是归根结底就是因为自己太懒了,导致没有坚持多长时间,加上一直为offer做准备,所以当时重心 ...
最新文章
- H5用户地址位置选择地点获取经纬度(效果图)
- Console-算法-冒泡排序法|倒水法
- 解读晦涩的存储技术缩略语
- 24张GIF图,让你秒懂非标自动化机构的原理
- linux远程登录x11,windows linux 通过SSH X11Forwrding 使用图形化界面
- 分分钟收入上万 她做到了网红最难的粉丝沉淀
- pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
- C# int[,] 和 int[][]
- java 读取svg元素_svg动态添加元素
- Mono SVN最新代码或者Mono 1.2.5 支持IronPython 2.0
- 限时一个月,拯救三体文明!ETO大数据人才召集计划!
- 企业Web应用中的敏捷测试和瀑布测试
- iOS上绘制自然的签名-b
- Removing Nesting By Returning Early
- 625某电商网站数据库宕机故障解决实录(上)
- C语言的隐式类型转换
- Oracle与MySQL的几点区别
- 计算机与软件学院辅导员陈伯亨,十年桃李满园———计算机科学与软件工程系隆重举行十周年校庆校友会...
- python语言提供的数字类型有哪些_Python语言中数字类型有哪些?
- 工具传送门(持续更新)
热门文章
- quot在c语言里用法,C语言中“#”和quot;##quot;的用法
- 计算机应软件与理论学什么,计算机软件与理论
- android 动态申请camera权限,GitHub - yinzhengwei/permissiongranted: Android动态权限检测和申请管理...
- python计算无穷级数求和,无穷级数求和的积分审敛法
- java大文件排序_java对大文件进行归并排序(利用胜者树)
- js实现超出一定字数隐藏并用省略号...代替,点击后又可进行展开和收起,
- Linux 实用工具vi
- eclipse 批量 查询 替换
- Mongoose学习参考文档
- JS客户端学习笔记二