LeapMotion在unity中保姆级使用教程
一、插件
1、下载资源包,包括:Core为核心引擎,Interaction Engine为实现虚拟物体交互的插件,hands提供手势渲染等。
Ultraleap Plugin for Unity — Ultraleap for Developers (leapmotion.com)https://developer.leapmotion.com/unity
2、unity中导入
3、安装Magic Leap XR Plugin
4、准备完成
二、场景创建
1、在自己工程的场景需要添加以下,一个个说
位置如下
2、对于LeapHanController模块,其中的Hand Model Manager这样添,该拖的物体拖进来
这个脚本能选择使用的是AR还是电脑
3、 就这么简单,基本环境就搭建好了。
三、使用方法
1、创建一个脚本,挂载在场景里
using System.Collections;
using System.Collections.Generic;
using UnityEngine;//引用
using Leap;
using Leap.Unity;public class HandControl : MonoBehaviour
{LeapProvider provider;public HandModelBase leftHandModel;//左手public HandModelBase rightHandModel;//右手private const float rotate_sensitive = 1500f; //旋转灵敏度private const float displacement_sensitive = 0.015f; //位移灵敏度private const float rotate_initial_value = 0f; //旋转初始位置值float shake = 0;/// <summary>/// 判断条件 尽量勿动/// </summary>const float smallestVelocity = 0.1f;const float deltaVelocity = 0.000001f;const float deltaCloseFinger = 0.06f;void Start(){provider = FindObjectOfType<LeapProvider>() as LeapProvider;}void Update(){jjj();}public void jjj(){Frame frame = provider.CurrentFrame;foreach (Hand hand in frame.Hands){if (hand.IsLeft && !hand.IsRight){if (isOpenFullHand(hand)){//Debug.Log("检测到手啦");if (isMoveRight(hand)){shake += Time.deltaTime;//计手移动的时间if (shake > 0.8f){shake = 0;//时间大于*f后,时间置零,避免一直触发Debug.Log("左掌向右");}}}if (isCloseHand(hand)){if (isMoveRight(hand)){Debug.Log("左拳向右");}}}}}/// <summary>/// 定义手势的基础类型/// </summary>/// <param name="hand"></param>/// <returns></returns>protected bool isMoveRight(Hand hand)// 手划向右{return hand.PalmVelocity.x > deltaVelocity && !isStationary(hand);//x,y,z控制三维轴,±控制轴方向}protected bool isMoveLeft(Hand hand) // 手划向左{//x轴移动的速度 deltaVelocity = 0.7f isStationary (hand) 判断hand是否禁止 return hand.PalmVelocity.x < -deltaVelocity && !isStationary(hand);}protected bool isMoveup(Hand hand) // 手划向上{//x轴移动的速度 deltaVelocity = 0.7f isStationary (hand) 判断hand是否禁止 return hand.PalmVelocity.y < deltaVelocity && !isStationary(hand);}protected bool isMovedown(Hand hand) // 手划向下{//x轴移动的速度 deltaVelocity = 0.7f isStationary (hand) 判断hand是否禁止 return hand.PalmVelocity.y < -deltaVelocity && !isStationary(hand);}protected bool isStationary(Hand hand)// 固定不动的 {return hand.PalmVelocity.Magnitude < smallestVelocity;}protected bool isCloseHand(Hand hand) //是否握拳 {List<Finger> listOfFingers = hand.Fingers;int count = 0;for (int f = 0; f < listOfFingers.Count; f++){ //循环遍历所有的手~~Finger finger = listOfFingers[f];if ((finger.TipPosition - hand.PalmPosition).Magnitude < deltaCloseFinger) // Magnitude 向量的长度 。是(x*x+y*y+z*z)的平方根。 //float deltaCloseFinger = 0.05f;{count++;// if (finger.Type == Finger.FingerType.TYPE_THUMB)// Debug.Log ((finger.TipPosition - hand.PalmPosition).Magnitude);}}return (count == 5);}protected bool isOpenFullHand(Hand hand) //手掌全展开~{//Debug.Log (hand.GrabStrength + " " + hand.PalmVelocity + " " + hand.PalmVelocity.Magnitude);return hand.GrabStrength == 0;}
}
其它手势基础,可以参考这个:
LeapMotion初步学习_alnh9788的博客-CSDN博客https://blog.csdn.net/alnh9788/article/details/101463386
LEAPMotion VR 各种手势的判断~_miccall的博客-CSDN博客_leapmotion 手势识别https://blog.csdn.net/qq_31411825/article/details/54773801Leapmotion 左右上下前后挥动手势设计,动态手势_moonlightpeng的博客-CSDN博客
https://blog.csdn.net/moonlightpeng/article/details/80191468?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.no_search_link&spm=1001.2101.3001.4242.2 判断每个手指的动作,参考这个:
unity + leapMotion 手势识别入门教程__Afra 的博客-CSDN博客_leapmotion手势识别https://blog.csdn.net/qq_39097425/article/details/84027730?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.essearch_pc_relevant
2、就可以用了,Debug的一些语句就能触发了
3、 控制捏动作的脚本
这个圈圈判断是否捏住
4、抓取物体
在需要交互的物体上加上Rigidbody和Interaction Behaviour两个组件
LeapMotion在unity中保姆级使用教程相关推荐
- AutoGPT保姆级使用教程
1. 介绍 Auto-GPT是一个基于ChatGPT的工具,他能帮你自动完成各种任务,比如写代码.写报告.做调研等等.使用它时,你只需要告诉他要扮演的角色和要实现的目标,然后他就会利用ChatGPT和 ...
- nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看)
文章目录 写在前面 nnUNet是什么? 一.配置虚拟环境 二.安装nnUNet框架 1.安装nnUNet 这一步我遇到的两个问题: 2.安装隐藏层hiddenlayer(可选) 三.数据集准备 nn ...
- Fiddler抓包工具保姆级使用教程(超详细)
超文本传输协议(HTTP)是一个简单的请求-响应协议,其主要是基于TCP来实现的,可以通过Chrome开发者工具或者Wireshark或者Fiddler抓包,以便分析 HTTP 请求/响应的细节,本篇 ...
- Podman 保姆级使用教程,太顶了!
作者:华龙飞.主要负责 Red Hat 产品与技术栈的培训交付,客户主要涉及金融.通信.汽车.医疗等行业.热爱并研究开源技术,熟悉 RHEL 各版本,SuSE Linux 各版本,热衷研究云原生与 D ...
- GitHub 从零开始的保姆级使用教程
文章目录 前引 下载Git 安装Git 注册GitHub GitHub登录无响应解决办法 GitHub登录并创建公开仓库 Git的使用并得到密匙 Git与GitHub SSH关联 Git的使用并远程上 ...
- Web项目部署到云服务器中—保姆级教程
文章目录 1.1工具准备 1.2安装JDK 1.3安装Tomcat 1.4安装MySql 1.5配置防火墙 1.6配置云服务器安全组 1.7Tomcat配置与启动 1.8补充知识 8.8.1如何将项目 ...
- Vue Grid Layout -️ 适用Vue.js的栅格布局系统(保姆级使用教程)
目录 一. Vue Grid Layout 简介 二.vue-grid-layout 的安装与使用 三. 属性 3.1 gridItem 的必须属性 3.2 框架元素的实际宽度高度计算方式 3.3 元 ...
- 将uniAPP项目导入到微信开发者工具中保姆级教程
什么是uniAPP? uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/ ...
- 不用科学上网,免费的GPT-4 IDE工具Cursor保姆级使用教程
Cursor官网下载地址 我下载的是window版的 操作特别简单,只需要记住两个快捷键就行: Windows 平台: Ctrl+K : 智能生成代码 Ctrl+L: 询问代码含义 Mac 平台: C ...
最新文章
- javax.mail API
- 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )
- android中获取mac地址8.0,关于Android8.0以下手机获取蓝牙Mac地址的问题和扫描周围的手机蓝牙问题 下篇...
- Vue.js-Day02-PM【组件化开发(全局注册组件、局部注册组件、案例)、组件的配置选项、轮播图实例(左右切换按钮、底部导航栏、定时器、鼠标移入-图片静止)】
- QDoc清单文件示例
- python数学函数_「分享」关于Python整理的常用数学函数整理
- 语言nomogram校准曲线图_医学统计与R语言:Meta 回归作图(Meta regression Plot)
- 用Apache HttpClient实现URL重定向
- 专注企业市场 或是网盘危机的有效出路
- SDUT OJ 顺序表应用3:元素位置互换之移位算法
- 【转】Horspool字符串匹配算法
- 【摘录】模拟物流快递系统程序设计
- TS - 勉强入个门儿
- Wordpress搭载七牛云CDN图片不显示问题解决
- [高项]焦点小组VS名义小组技术VS引导式研讨会
- 推荐一个好的节拍器软件?3款App帮你成为节奏大师
- 查看联通GPON/4+1+WiFi(2.4G)光猫管理员密码的一种思路
- zookeeper-入门介绍架构使用(这一篇足以)
- 系统的软中断CPU使用率升高,我该怎么办?
- HCJ2:页面两栏式或三栏式布局
热门文章
- 正则表达式校验支付宝账号
- 黑马程序员 Java自学总结十六 网络编程
- NLP--中心性算法(Centrality Algorithms)总结【原理】
- Day2 Numerical simulation of optical wave propagation之标量衍射理论基本原理(二)
- javascript大作业《web课程设计》用html做一个期末作业网站,梅西足球体育网页,css
- 海啸受灾国在经济上躲过一劫【ZZ】--这就是以“经济”眼光关照tsunami的结论...
- AutoCAD 2007-2012 长度统计工具
- 关于Chrome浏览器总提示未安装flash player解决办法
- 2021省选退役游记
- Outlook2003数据备份的方法讲解