Unity leapmotion开发实录(4)

Unity leapmotion开发实录(4)

本系列文章将会从一个初学者的脚步去讲解unity和leapmotion协同开发的一系列问题:

特:本人水平有限所以有错误请及时指正

本人也会引用一些代码如果有所侵犯请联系删除

自2015.11.22开始周更


本周着重开始讲解leap开发中的实际问题


首先我们必须对一些核心的脚本进行熟悉 明白他们的工作原理 :

1.重中之重simple.cs

作为官方编写的文档 几乎出现了所有的api 函数所有的返回数据 所有的方法 除去一些需要自己经验的写法 基本全部囊括其中了 但是 以下代码 基本见不到了simple.cs的影子

鉴于是教程 那我的定位是代码讲解 采取分立介绍最后汇总 不是铺陈代码
tip :

以下代码片段都不是直接复制粘贴就能运行的 小白还是回去看我之前的内容
以下代码片段都不是直接复制粘贴就能运行的 小白还是回去看我之前的内容
以下代码片段都不是直接复制粘贴就能运行的 小白还是回去看我之前的内容

头文件部分 因为设计到了一些list 或是一些UI绘制 所以头文件显得多了一些(当然以后会更多)

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
using Leap;
using System.Collections.Generic;

在脚本类中的定义工作 (以后的脚本基本基于以下定义工作,如不作特殊说明则默认为以下定义)

    public HandController  hc;      //控制器    
    private HandModel  hm;          //手部模型
    public GameObject cubePrefab;   //可不定义
    public Vector squizehand;      //紧握得手vector
    private GameObject cube = null;
    Frame currentFrame = null;//定义当前帧
    Frame lastFrame = null;//上一帧

函数部分
借助返回的数据 我们可以设计更多的手势 比如在大量测试后 我们发现35左右的值在leap设计中是关键的参数所以:

bool squize(float radius)//判断手势是否为握持  阀值为35
    {
        if (radius < 37)
            return true;
        else
            return false;
    }

另外 如果你有自己的想法 或是对返回值有所要求or不想用官方给的东西 那么可以自己写一个判断双手距离的函数:

double distance(Vector a,Vector b)//双手距离判断  退出机制触发阀值为35
    {

        double c=Math.Sqrt (Math.Pow ((a.x-b.x), 2) + Math.Pow ((a.y-b.y), 2) + Math.Pow ((a.z-b.z), 2));
        Debug.Log ("TWO hand distance="+c);
        return c;
    } 

以上两个非常简单的函数共同使用 就诞生了更多的用法 我们后续会介绍 并且经过测试 其稳定性甚至要高于某些官方的预制手势
那好既然说道预制手势 下面我们就来讨论一下 预制手势的用法:
首先需要在start()中定义 打开预制手势:

        hc.GetLeapController().EnableGesture(Gesture.GestureType.TYPECIRCLE);  //环绕
        hc
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值