百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Leap Motion 开发之让物体跟随手掌的移动

liebian365 2025-04-07 15:39 5 浏览 0 评论

设置一个Unity3D项目工程

Leapmotion资源包包括在windows平台上使用的plugin文件。该资源包包括手的预设,脚本和示例场景帮助你快速掌握leapmotion。

获取leapmotion资源包从:
https://developer.leapmotion.com/downloads/unity

创建工程

首先,创建一个新的Unity工程文件,如图:

然后,导入资源包

不同的Unity版本导入不同的资源包4.1.4和4.1.3都需要5.3以上的Unity版本,区别在于4.1.4比4.1.3多出了两个模块Leap Motion Interaction 和Engine 0.2.03,在这里我用的是4.1.4版本的leapmotion资源包。

导入的模块的介绍

LeapMotion资源包为Unity开发设计了集中模块可供开发者选择。核心包需要使用手部追踪,但是这些某块包含你想要使用的大部分功能。模块彼此之间并不相互依赖。当前可使用的模块包括:

l Attachments

l Hands

l Interaction Engine

l UI Input

l Detection Examples

导入模块与你导入leapmotion资源包的方法一样:

在4.1.4的资源包中已将包括了这些模块,如果是最新的资源包也可以单独下载这些模块资源,同样这些资源也有着Unity版本的限制,只能在何时的版本中使用资源包。

在VR场景中添加手

用LMHeadMountedRig替换场景中任何存在的摄像机。将LMHeadMountedRig预设放置使用者初始场景视图的位置上。

在该预设下有个leapmotion控制器,选中这个控制器,在面板中设置Hand Pool脚本的参数ModelPool的size为2表示有两种hand模型

然后在group name中设置名称,两个手的模型分别是左右手的几何模型和物理模型,将与之对应的模型拖到相应的框内即可。然后将下方的选项Is Enabled和Can Duplicate勾选上。

注意在场景中手的模型首先出现在相机的前方,该模块应该放在相机的外部,而不是作为LeapHandController的子物体。

记下来运行场景。

这是左手,因为是在VR中所以要配合虚拟眼镜观看,在PC上看是相反的。

下面介绍PC端的leapmotion的模块:

首先将预设拖到场景中,然后因为这个预设上没有相机,所以确保场景中有一个相机,并将控制器放置到相机的前方,修改控制器的脚本Hand Pool将其参数size该为2并将相应的模型放置到Model Pool中然后勾选Is Enabled和Can Duplicate。

直接获取Leap Motion的API

在unity中添加命名空间Leap.Unity 和Leap 就可以调用Leap的API了下面是一个例子,将其直接加到其他的游戏对象上,可以跟随手的运动。

using UnityEngine;

using System.Collections.Generic;

using Leap;

using Leap.Unity;

public class LeapBehavior : MonoBehaviour {

LeapProvider provider;

void Start ()

{

provider = FindObjectOfType() as LeapProvider;

}

void Update ()

{

Frame frame = provider.CurrentFrame;

foreach (Hand hand in frame.Hands)

{

if (hand.IsLeft)

{

transform.position = hand.PalmPosition.ToVector3() +

hand.PalmNormal.ToVector3() *

(transform.localScale.y * .5f + .02f);

transform.rotation = hand.Basis.CalculateRotation(); }

}

}

}

这段代码实现的效果入下图:

好了,就大功告成了。下一篇小编会出VR 开发资料的汇总

相关推荐

msp的昌伟哥哥(伟昌怎么样)

佩戴HoloLens的多个用户可以使用场景共享特性来获取集合视野,并可以与固定在空间中某个位置的同一全息对象进行交互操作。这一切是通过空间锚共享(AnchorSharing)来实现的。为了使用共享服...

VOculus Rift、Gear VR平台开发者合作申请指南

编译/游戏陀螺案山子OculusHome平台——OculusRift和三星Gear主要的应用平台,包括PC版和移动版都可以使用。而现在使用的OculusShare平台,据悉将来也会整合到Ocu...

游戏中的"状态机”和"行为树”是什么?

状态机是一种模型,用于描述对象在不同状态下的行为和转换。在游戏里,状态机通常用于控制角色或NPC在不同状态下的行为。比如说,一个角色可以有多个状态,比如“待机”、“行走”、“攻击”、“受伤”等,每个状...

JetBrains Rider现已支持PS5和Xbox主机游戏开发

IT之家3月27日消息,Rider是一款由JetBrains出品的跨平台.NETIDE,在2024.3版本中,JetBrainsRider增加了对PlayStation5...

Unity WebGL 应用开发总结(unity webgl发布)

UnityWebGL应用开发总结1.开发环境软件版本Unity2020.1.0f1PyCharm2022.3.2Python3.7.32.编译WebGL对Unity项目进行WebGL编译时...

【6.Physics和动画】5.动画(动画电影)

5.动画现在,角色可以移动了,但在移动时形象一直不变,对于玩家来说比较生硬,本节中我们让角色在移动时能够播放动画。Unity2D游戏中,角色动画一般采用帧动画的形式来实现。所谓帧动画就是在每一帧显...

unity3d开发教程-开发环境搭建(unity3d开源项目)

一、安装Unity1、从官网下载UnityHub:https://unity.com/download,选择[DownloadforWindows]下载完成后,双击打开安装。一直点...

【2.UI元素】3.Panel and Button(ui界面元素)

3.PanelandButton3.1PanelPanel(面板)本质上就是预先设置好的Image。可以作为其他UI元素的父级。在层级窗口右击选择UI->Panel即可创建。...

揭秘!你玩的字节抖音小游戏制作流程公布

1.1注册字节开发者后台1.2Unity版本说明1.3检查AppID是否有效2.1创建项目2.2接入SDK3.1发布安卓Apk3.2发布双端WebGL3.3IOS15.4版本问题字节抖...

临时工闯下大祸《糖豆人》源代码更新时不慎泄露

这次《糖豆人》工作室Mediatonic的临时工闯下了大祸,在更新时一不留神把游戏的源代码给泄露了。当然,这次泄露之后,官方删除的动作也很快,但是没快过SteamDB创始人PavelDjundik...

为3D手游打造, Visual Studio Unity扩展下载

IT之家(www.ithome.com):为3D手游打造,VisualStudioUnity扩展下载7月30日消息,微软正式发布升级版VisualStudioToolsforUnity扩...

【2.C#基础】3.脚本入门(c# 脚本引擎)

3.脚本入门3.1脚本概要在上一节创建的脚本中,包含了一段模板代码,双击工程窗口中的脚本图标,系统自动打开代码编辑器(VSCode)可以看到代码如下图所示:说明:System.Collections...

unity专题:unitask库(1)(unitypackage)

UniTask是一个Unity引擎中的异步编程库,它可以帮助你在Unity项目中编写更简洁、高性能的异步代码。UniTask以Promise/Task的编程模式为基础,提供了与C#...

零基础带你看游戏内灰度效果实现原理

前言在Unity中实现后处理效果有两种方式:一种是通过使用Unity官方提供的Post-Processing插件。另外一种方式就是使用脚本获取到渲染后帧缓冲区的图像,再通过shader写后处理的效果,...

团结引擎自定义Scene视图的层叠面板和工具栏

团结引擎提供的了功能,可以为Scene视图添加层叠面板和自定义工具栏,这里学习官方的经典案例。创建层叠面板。总结需要三个步骤:1、创建编辑器脚本(需存放在Editor目录下)2、继承Overlay类,...

取消回复欢迎 发表评论: