您的位置:首页 > 移动开发 > Unity3D

Unity开发Leapmotion

2016-04-18 15:14 573 查看
新建一个场景,删掉里面的Main Camera
从Prefabs里拖入LMHeadMountedRig
然后给LeapHandController上添加四个手,如图所示:




手从Prefabs文件夹中选择。








点击运行,就可以发现手已经出现了
选中CenterEyeAnchor,将override eye position勾掉


如果不勾掉的话就会出现重影的效果


然后运行之后就可以了



如果要使用api接口,要引入Leap.Unity命名空间。官方文档上讲,在unity使用的时候,要通过LeapProvider来访问,使用LeapController的话要进行手动转换空间坐标
using UnityEngine;

using System.Collections;

using Leap.Unity;

using Leap;


public class Test : MonoBehaviour {


LeapProvider provider;

// Use this for initialization

void Start () {

provider = FindObjectOfType<LeapProvider>() as LeapProvider;

}


// Update is called once per frame

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.Rotation();

}

}

}

}

[/code]
要使用hand和Finger的话,必须是来自于Frame,所以首先通过provider初始化当前这一帧。然后把这个脚本绑定到一个GameObject上,启动播放,可以发现GameObject随着左手的移动而移动。
吐槽一下Leapmotion,官网上连个教程都没有,文档太少了。只有这么个简单的示例,哎!

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: