当前位置: 首页 > news >正文

⭐Unity LeapMotion与手的相关开发

LeapMotion 官方文档中文翻译帮助手册教程

Hand

一个Hand手对象表示了一个跟踪的手,一个手总是包含5个手指以及相关属性如:Direction,PalmPosition,和Basis(orientation).

lamPosition :手掌中心到Leap设备原点以毫米测量的距离

PalmVelocity :手掌移动的速度(以毫米每秒为单位)。

PalmNormal :一个向量,这个向量是垂直于手掌所形成的平面的。并且向量从手掌出来指向下。

Direction :一个向量,从手掌指向手指的方向。

判断是否是左手或者右手

if (currentFrame.Hands.Count > 0) // 判断当前帧中是否检测到有手的数量 > 0 。并且所有的手会在一个List数组中

{

for (int i = 0; i < currentFrame.Hands.Count; i++) // 如果大于0,就要遍历,因为2-4个手是可以检测到的

{

if (currentFrame.Hands[i].IsLeft) // 判断是左手

{

Debug.Log(currentFrame.Hands[i].ToString());

}

if (currentFrame.Hands[i].IsRight) // 判断是右手

{

Debug.Log(currentFrame.Hands[i].ToString());

}

}

}

判断手掌是否向上或者向下(基于手掌法线来进行的)

if (currentFrame.Hands[i].PalmNormal.y > 0) // PalmNormal手掌的法线量

{

Debug.Log("手掌向上");

}

以下代码供参考

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Leap.Unity;
using Leap;public class LeapGestureTool1 : MonoBehaviour
{public static LeapGestureTool1 instance;private Controller leapController;public Camera leapCamera;public bool isQin = false;public float distance = 0;private void Awake(){instance = this;}void Start(){// 创建LeapMotion控制器实例leapController = new Controller();}void Update(){// 检查是否连接了Leap Motion控制器if (!leapController.IsConnected){Debug.Log("Leap Motion未连接");return;}// 获取最新的帧数据Frame frame = leapController.Frame();// 获取第一个检测到的手部if (frame.Hands.Count > 0){isQin = true;Hand hand = frame.Hands[0];// 获取手的位置Vector3 handPosition = hand.PalmPosition.ToVector3();// 获取相机的位置Vector3 cameraPosition = leapCamera.transform.position;计算人手与相机之间的距离// distance = Vector3.Distance(handPosition, cameraPosition);//Debug.Log("人手与Leap Motion相机的距离为:" + distance);Vector3 positionDifference = handPosition - cameraPosition;// 判断手在相机的前方还是后方//if (Vector3.Dot(leapCamera.transform.forward, positionDifference) > 0)//{//    Debug.Log("手在相机的前方");//}//else//{//    Debug.Log("手在相机的后方");//}// 判断手在相机的上方还是下方if (positionDifference.y > 0){Debug.Log("手在相机的上方");}else{Debug.Log("手在相机的下方");}// 判断手在相机的左方还是右方Vector3 cameraRight = leapCamera.transform.right;if (Vector3.Dot(cameraRight, positionDifference) > 0){Debug.Log("手在相机的右方");}else{Debug.Log("手在相机的左方");}}else{isQin = false;//Debug.Log("手不在检测范围");}}}

相关文章:

⭐Unity LeapMotion与手的相关开发

LeapMotion 官方文档中文翻译帮助手册教程 Hand 一个Hand手对象表示了一个跟踪的手&#xff0c;一个手总是包含5个手指以及相关属性如&#xff1a;Direction,PalmPosition,和Basis(orientation). lamPosition :手掌中心到Leap设备原点以毫米测量的距离 PalmVelocity :手掌移…...

React16源码: React中的update和updateQueue的源码实现

React中的update和updateQueue 1 &#xff09;概述 在 ReactDOM.render 过程中&#xff0c;还需要创建一个 update 对象update 用于记录组件状态的改变的一个对象&#xff0c;它存放于Fiber对象的 updateQueue 中updateQueue&#xff0c;它是一个单向链表的结构&#xff0c;一…...

mybatisplus(service CRUD 接口)

一、我们在控制器层都是调用Service层&#xff0c;不会直接调用仓储层。现在我给大家介绍一下怎么快速实现Service 的CRUD 定义接口&#xff1a;IProductService 继承IService<实体> package com.saas.plusdemo;import com.baomidou.mybatisplus.extension.service.ISe…...

GC6109——双通道5V低电压步进电机驱动芯片,低噪声、低振动,应用摄像机,机器人等产品中

GC6109是双通道5V低电压步进电机驱动器&#xff0c;具有低噪声、低振动的特点&#xff0c;特别适用于相机的变焦和对焦系统&#xff0c;万向节和其他精密、低噪声的STM控制系统。该芯片为每个通道集成了256微步驱动器。带SPl接口&#xff0c;用户可以方便地调整驱动器的参数。内…...

MySQL-多表联合查询

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…...

商城小程序(8.购物车页面)

目录 一、商品列表区域1、渲染购物车商品列表的标题区域2、渲染商品列表区域的基本结构3、为my-goods组件封装radio勾选状态4、为my-goods组件封装radio-change事件5、修改购物车中商品的选择状态6、为my-goods组件封装NumberBox7、为my-goods封装num-change事件8、修改购物车商…...

[Vulnhub靶机] DC-1

[Vulnhub靶机] DC-1靶机渗透思路及方法&#xff08;个人分享&#xff09; 靶机下载地址&#xff1a; https://download.vulnhub.com/dc/DC-1.zip 靶机地址&#xff1a;192.168.67.28 攻击机地址&#xff1a;192.168.67.3 一、信息收集 1.使用 arp-scan 命令扫描网段内存活的…...

【springboot 中集成 knife4j 时,报错 No mapping for GET /doc.html】

出现这种情况可能是项目中含有继承WebMvcConfigurationSupport的类&#xff0c;这会导致 swagger 配置失效。 解决方法&#xff0c;继承WebMvcConfigurationSupport下重写addResourceHandlers方法 Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry)…...

C++ 具名要求-全库范围的概念 -谓词(Predicate)-二元谓词(BinaryPredicate)

此页面中列出的具名要求&#xff0c;是 C 标准的规范性文本中使用的具名要求&#xff0c;用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前&#xff0c;确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…...

MyBatis-Plus不写任何resultMap和SQL执行一对一、一对多、多对多关联查询

MyBatis-Plus不写任何resultMap和SQL执行一对一、一对多、多对多关联查询 MyBatis-Plus不写任何resultMap和SQL执行一对一、一对多、多对多关联查询 com.github.dreamyoung mprelation 0.0.3.2-RELEASE 注解工具使用优缺点&#xff1a; 优点&#xff1a; 使用简单&#xf…...

arcgis javascript api4.x加载天地图web墨卡托(wkid:3857)坐标系

效果&#xff1a; 示例代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv&quo…...

中职组安全-win20230217-环境-解析

*任务说明&#xff1a; 仅能获取win20230217的IP地址 用户名&#xff1a;test&#xff0c;密码&#xff1a;123456 访问服务器主机,找到主机中管理员名称,将管理员名称作为Flag值提交&#xff1b; john 访问服务器主机,找到主机中补丁信息,将补丁编号作为Flag值提交&#xff…...

PMP学习考试经验总结

PMP备考日程计划表 我的PMP的备考大概花了三个月的时间, 可以分为以下几个阶段&#xff1a; Week 1-4: 读完PMBoK 前面7个知识领域&#xff08;中英文版PMBoK一起看&#xff09;。每看完一个知识领域&#xff0c;就看参考书里面的相应章节&#xff08;汪博士那本&#xff09;…...

leetcode206.反转链表

https://leetcode.cn/problems/reverse-linked-list/description/ 题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&am…...

python每日学17:控制推导逻辑的子表达式不要超过两个

背景&#xff1a;今天放假在家&#xff0c;《python学习手册》不在身边&#xff0c;所以今天学习《Effective Python: 编写高质量Python代码的90个有效方法》第28条《控制推导逻辑的子表达式不要超过两个》&#xff0c;这本书已经是第二版了&#xff0c;第一版是《编写高质量py…...

地质时间与数值模拟时间转换(mm/Ma-->m/s)

一百万年(1Ma)等于315,576,000,0003.15576e11秒。 计算方法如下&#xff1a; 一年通常定义为365天&#xff08;非闰年&#xff09;。每天有24小时。每小时有60分钟。每分钟有60秒。 所以&#xff0c;一年的秒数为&#xff1a; 365天 24小时/天 60分钟/小时 60秒/分钟 31…...

linux文件描述符管理

在实际的项目开发中&#xff0c;文件描述符是经常用到的并且在释放资源过程中也是很容易忽略的&#xff0c;使用之后不释放就会增加cpu负担&#xff0c;无异于内存泄漏&#xff1b;所以时刻掌握文件描述符的状态是非常重要的&#xff01;下面介绍文件描述符的管理方法。 1. 文…...

谷歌翻译不能使用 host添加IP

谷歌浏览器翻译不能使用解决教程_142.250.100.90 translate.googleapis.com-CSDN博客...

Redis命令 - Lists命令组常用命令

先创建一个 key 叫做 mylist&#xff0c;mylist存一个list。 list数据类型底层是一个链表。先进后出&#xff0c;后进先出。 命令中的L&#xff08;Left&#xff09;、R&#xff08;Right&#xff09;代表链表的头部L&#xff08;下标0的位置&#xff09;和尾部R&#xff08;…...

切分大文件sql为小份

数据库太大了&#xff0c;整个备份导入出问题或者慢&#xff0c;需要将整个库按照表分割&#xff08;一个表一个sql文件&#xff09; 环境 win10 工具&#xff1a;python3.7pycharm 要分割的文件大小&#xff1a;6G&#xff0c;sql文件import redbname with open(best**.sql,…...

Knife4j在SpringBoot3中的高级配置:自定义首页、多语言支持与安全认证

Knife4j在SpringBoot3中的高级配置&#xff1a;自定义首页、多语言支持与安全认证 当你的SpringBoot3项目已经完成Knife4j的基础集成&#xff0c;接下来可能会面临这样的需求&#xff1a;如何让API文档更符合企业品牌形象&#xff1f;如何为国际团队提供多语言支持&#xff1f…...

BEYOND REALITY Z-Image实测:同一张脸,两种质感,细节对比一目了然

BEYOND REALITY Z-Image实测&#xff1a;同一张脸&#xff0c;两种质感&#xff0c;细节对比一目了然 今天我要带大家做一个有趣的实验。想象一下&#xff0c;你面前站着同一个人&#xff0c;但左边是手机快照&#xff0c;右边是专业单反拍摄的照片——这就是BEYOND REALITY Z…...

Qwen2.5-72B-GPTQ-Int4开源镜像:Chainlit前端定制化开发入门指南

Qwen2.5-72B-GPTQ-Int4开源镜像&#xff1a;Chainlit前端定制化开发入门指南 想快速搭建一个功能强大、界面美观的AI对话应用吗&#xff1f;今天&#xff0c;我们就来聊聊如何基于Qwen2.5-72B-GPTQ-Int4这个顶级开源大模型&#xff0c;以及Chainlit这个轻量级前端框架&#xf…...

SAP EWM RF手持设备开发实战:从SPRO配置到屏幕绘制的完整流程

SAP EWM RF手持设备开发实战&#xff1a;从SPRO配置到屏幕绘制的完整流程 在仓储物流领域&#xff0c;SAP EWM&#xff08;Extended Warehouse Management&#xff09;系统的RF&#xff08;Radio Frequency&#xff09;手持设备开发一直是技术难点与业务痛点的交汇处。不同于传…...

CentOS 6下OpenSSH从5.3升级到8.0的完整避坑指南(附Telnet备用方案)

CentOS 6环境下OpenSSH安全升级全流程&#xff1a;从风险规避到应急通道搭建 当一台运行CentOS 6的服务器在安全扫描中被标记出OpenSSH 5.3的高危漏洞时&#xff0c;任何有经验的运维工程师都会感到脊背发凉——这就像发现自家大门用的还是二十年前的挂锁。但更令人焦虑的是&am…...

OpenClaw+nanobot备份方案:自动化配置与数据同步

OpenClawnanobot备份方案&#xff1a;自动化配置与数据同步 1. 为什么需要备份nanobot环境 上周我的开发机突然硬盘故障&#xff0c;导致辛苦配置了两个月的nanobot环境全部丢失。那一刻我才深刻意识到&#xff0c;对于这种高度定制化的AI自动化系统&#xff0c;没有备份方案…...

小白也能玩转DeepSeek-R1:Ollama一键部署推理模型实战

小白也能玩转DeepSeek-R1&#xff1a;Ollama一键部署推理模型实战 还在为复杂的AI模型部署而烦恼吗&#xff1f;DeepSeek-R1-Distill-Llama-8B作为一款强大的文本生成模型&#xff0c;现在通过Ollama平台可以轻松实现一键部署。本文将带你从零开始&#xff0c;只需3个简单步骤…...

Node.js后端集成GTE-Base-ZH:构建语义化API服务实战

Node.js后端集成GTE-Base-ZH&#xff1a;构建语义化API服务实战 最近在做一个智能文档检索项目&#xff0c;需要处理大量中文文本的语义相似度计算。一开始尝试用传统的TF-IDF&#xff0c;效果总是不尽如人意&#xff0c;直到接触到了GTE-Base-ZH这个专门针对中文优化的文本嵌…...

为什么92%的Spring Cloud Function项目仍在忍受秒级冷启动?这4个被忽视的Classloader陷阱必须立即修复

第一章&#xff1a;冷启动问题的云原生本质与量化归因冷启动并非单纯的应用延迟现象&#xff0c;而是云原生架构中资源按需供给、隔离边界强化与运行时环境动态构建三者耦合引发的系统性效应。其本质在于容器编排层&#xff08;如 Kubernetes&#xff09;与函数计算平台&#x…...

Arrow:可视化节点系统如何解决游戏叙事设计中的效率瓶颈

Arrow&#xff1a;可视化节点系统如何解决游戏叙事设计中的效率瓶颈 【免费下载链接】Arrow Game Narrative Design Tool 项目地址: https://gitcode.com/gh_mirrors/arrow/Arrow 在游戏开发的深夜&#xff0c;叙事设计师李明正对着屏幕上密密麻麻的剧情分支图发愁。这个…...