Leap Motion Using Unity3D——环岛跑车篇
Leap Motion Using Unity3D——环岛跑车篇
一. Leap Motion简介
二. 软件要求
1. Unity3D
2. 跑车教程
3. Leap SDK
4. Leap Motion输入脚本
三. 操作步骤
1. 创建新的工程
2. 确保CompleteScene场景正常工作
3. 复制CompleteScene
4. 在Assets目录下创建Plugins文件夹
5. 复制Leap文件至Plugins文件夹和游戏文件的根目录下
6. 复制LeapUnityExtensions.cs至Plugins文件夹
7. 复制pxsLeapInput.cs至Plugins文件夹
a)(可选)检查pxsLeapInput.cs脚本
private static float GetHandAxisPrivate(string axisName, bool scaled)
{// Call Update so you can get the latest frame and handUpdate();float ret = 0.0F;if (m_Hand != null){Vector3 PalmPosition = new Vector3(0,0,0);Vector3 PalmNormal = new Vector3(0,0,0);Vector3 PalmDirection = new Vector3(0,0,0);if (scaled == true){PalmPosition = m_Hand.PalmPosition.ToUnityTranslated();PalmNormal = m_Hand.PalmNormal.ToUnity(); PalmDirection = m_Hand.Direction.ToUnity();}else{PalmPosition = m_Hand.PalmPosition.ToUnity();PalmNormal = m_Hand.PalmPosition.ToUnity();PalmDirection = m_Hand.Direction.ToUnity();}switch (axisName){case "Horizontal":ret = PalmPosition.x ;break;case "Vertical":ret = PalmPosition.y;break;case "Depth":ret = PalmPosition.z ;break;case "Rotation":ret = -2 * PalmNormal.x ;break;case "Tilt":ret = PalmNormal.z ;break;case "HorizontalDirection":ret = PalmDirection.x ;break;case "VericalDirection":ret = PalmDirection.y ;break;default:break;}}if (scaled == true){if (ret > 1) {ret = 1;}if (ret < -1) {ret = -1;}}return ret;
}
在GetHandAxisPrivate函数中,函数输入包括轴的名称axisName(字符串)和缩放标志位scaled(布尔型)。首先调用Update函数获取当前帧和当前帧中索引为0的手;如果布尔型变量scaled值为真,则掌心位置使用ToUnityTranslated函数获取,掌心方向量和掌心方向用ToUnity函数获取,否则掌心位置用ToUnity获取。
8. 在Car.js中调用pxsLeapInput
if(LeapEnabled == true){throttle = pxsLeapInput.GetHandAxis("Depth") * forwardScale;steer = pxsLeapInput.GetHandAxis("Rotation");print("Throttle: " + throttle.ToString() + "Steer: " + steer.ToString());
}
else{throttle = Input.GetAxis("Vertical");steer = Input.GetAxis("Horizontal");
}
public var LeapEnabled : boolean = false;
public var forwardScale : float = 0.4;
9. 使能Leap Motion输入
![](/assets/blank.gif)
10. Leap Motion输入介绍
(1)数值单位
(2)帧
帧的基本实体包括Hand,fingers和tools。controller.frame()获取当前帧;controller.frame(n)获取上n帧;frame.id()获取当前帧的整数型ID;Leap::Listener类中检测新帧到来的回调函数为onFrame(controller);frame.hand(id),frame.finger(id)和frame.tool(id)为获取当前ID的手,手指和工具数据。
(3)手
![](/assets/blank.gif)
结语
Leap Motion Using Unity3D——环岛跑车篇相关推荐
- Unity3D中使用Leap Motion进行手势控制
Leap Motion作为一款手势识别设备,相比于Kniect,优点在于精确度. 在我的毕业设计<场景漫游器>的开发中,Leap Motion的手势控制作为重要的一个环节.以此,谈谈开发中 ...
- 【新手入门】全网最全Leap Motion技术总结
不好意思有点标题党了hhh~ 本科毕设使用了Leap Motion完成了一个双手交互体验的小程序,在查阅相关资料时发现网上的资料良莠不齐.不够系统,常常是花费了很多精力搜集资料却得不到想要的答案.正好 ...
- Unity3D与Leap motion连接学习记录
https://www.leapmotion.com/partnerships (Leapmotion官方网站) 把这个leapmotion手势识别相机看一下,这个开发互动非常方便,有开发sdk ...
- Leap Motion开发(三)Unity3D API总结
主要参考b站教程 鉴于网上没有Unity3D和Leap Motion的API的文档,所以自己做一个总结. 配置 B站教程采用的配置是Unity2018.4.7 + Leap unity包4.6.0 我 ...
- 基于Leap Motion设备及Unity3D引擎的自定义手势识别
1.Leap Motion 官网下载SDK并导入Unity3D,官网地址:https://developer.leapmotion.com/ 本次测试适用unity版本为2017.1以上 下载内容: ...
- Leap Motion 之Unity 开发指南(一. 基本概念与制作手预制件)
LeapMotion 之Unity开发指南(一.基本概念和手的预制件) [序言] 最近用Leap Motion + 国产的3Glass眼镜构建了房地产.数字矿山的一些应用,感觉这是很经济的一个VR架构 ...
- Leap Motion不会再出独立的控制器二代
Leap Motion的使用者应该比较期待新版的Leap Motion,我也是其中之一.实话说Leap Motion精度不够好,也就是说在根据深度信息获取手指位置的过程中,手指的遮挡会造成Leap M ...
- 十大最佳Leap Motion体感控制器应用
十大最佳Leap Motion体感控制器应用 Leap Motion Controller也许还没有准备好大规模的发售,但是毫无疑问,这款小巧的动作捕捉器是我们见过的最酷的设备之一.这款设备的硬件配置 ...
- 【VR】Leap Motion 官网文档 HandModel(手部模型)
前言: 本系列译文是为迎合Unity VR的热潮与大家的学习需要,推出的针对Unity方向的Leap Motion官方文档中英对照翻译. 本篇为第六篇 <HandModel(手部模型)> ...
- 基于Leap Motion的智能灯光控制系统
事先声明,本文涉及到的所有代码都是我毕业设计的内容,请勿转载. 准备工作 Arduino IDE.Processing.8*8 WS2812B.Leap Motion 其中,Arduino需要安装Ad ...
最新文章
- Android简单手势滑动的识别
- 单机版五子棋java功能_java实现单机版和网络对战版五子棋程序
- 关于VS2013下制作和使用静态库和动态库
- STM32F103ZE单片机在WWDG窗口看门狗的EWI中断中喂狗导致系统复位的原因及解决办法(中断函数重入问题)
- 前端调试、兼容、适配指南与工具分享
- 15名优秀女科学家拟获重量级荣誉
- Fresh for Mac(文件管理软件)
- python 后10个元素_10 行 Python 代码写 1 个 USB 病毒
- 如何在PHP里面连接数据库?
- java高级之注解详解
- python文件和路径操作
- svn 命令行_Ubuntu下Subversion(SVN)的快速安装与配置
- 特征选择的基本方法概述
- dependencyManagement 失效
- GET 请求参数过大导致HTTP错误码 414 / 500 的问题
- C#实现Omron欧姆龙PLC的Fins Tcp协议
- 【支付】第三方支付收单机构
- 再聊聊Python中文社区的翻译
- 2021-2027年全球与中国彩色隐形眼镜行业市场前瞻与投资战略规划分析报告
- DevC++实现代码高亮复制进word