Lean_Touch控制移动

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

using Lean.Touch;

public class Lean_Touch: MonoBehaviour

{

public float speed=100;//定义速度上下

private Rigidbody _rig;//定义移动刚体

private Renderer _render;//定义材质渲染

private float offsets = 0;//定义渲染变量

//初始化

public void Awake()

{

//得到组件

_rig = GetComponent<Rigidbody>();

_render = GetComponent<Renderer>();

}

//开启启动

protected virtual void OnEnable()

{

//监听加事件

LeanTouch.OnGesture += OnGesture;

}

//关闭禁用

protected virtual void OnDisable()

{

//监听去事件

LeanTouch.OnGesture -= OnGesture;

}

//List<LeanFinger> fingers参数的方法

public void OnGesture(List<LeanFinger> fingers)

{

//判断上划

if (LeanGesture.GetScaledDelta(fingers).x > 0 )

{

//材质球偏移量

offsets += 0.1f;

_render.material.mainTextureOffset = new Vector2(offsets, 0);

//给物体x加力

_rig.AddForce(new Vector3(speed, 0, 0), ForceMode.Force);

}

//判断下划

if (LeanGesture.GetScaledDelta(fingers).x < 0 )

{

//材质球偏移量

offsets -= 0.1f;

_render.material.mainTextureOffset = new Vector2(offsets, 0);

//给物体x加反向力

_rig.AddForce(new Vector3(-speed, 0, 0), ForceMode.Force);

}

//判断左划

if (LeanGesture.GetScaledDelta(fingers).y > 0 )

{

//给物体x加反向力

_rig.AddForce(new Vector3(0, 0, speed), ForceMode.Force);

}

//判断右划

if (LeanGesture.GetScaledDelta(fingers).y < 0 )

{

//给物体x加反向力

_rig.AddForce(new Vector3(0, 0, -speed), ForceMode.Force);

}

//根据滑动方向给物体选择面朝方向

Vector3 movePosition = new Vector3(LeanGesture.GetScaledDelta(fingers).x, 0, LeanGesture.GetScaledDelta(fingers).y);

Vector3 dir = transform.position + movePosition;

transform.LookAt(dir);

}

}

注:此移动方式是在LeanTouch插件下进行的移动旋转、移动加力方式根据需要调节、ForceMode.Force:给物体添加一个持续的力并使用其质量、ForceMode.Acceleration:给物体添加一个持续的加速度,但是忽略其质量、 ForceMode.Impulse:给物体添加一个瞬间的力并使用其质量、ForceMode.VelocityChange:给物体添加一个瞬间的加速度,但是忽略其质量。

LeanTouch控制移动的更多相关文章

  1. [APUE]进程控制(上)

    一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstr ...

  2. 详解树莓派Model B+控制蜂鸣器演奏乐曲

    步进电机以及无源蜂鸣器这些都需要脉冲信号才能够驱动,这里将用GPIO的PWM接口驱动无源蜂鸣器弹奏乐曲,本文基于树莓派Mode B+,其他版本树莓派实现时需参照相关资料进行修改! 1 预备知识 1.1 ...

  3. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  4. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整-控制反转和依赖注入的使用

    再次调整项目架构是因为和群友dezhou的一次聊天,我原来的想法是项目尽量做简单点别搞太复杂了,仅使用了DbContext的注入,其他的也没有写接口耦合度很高.和dezhou聊过之后我仔细考虑了一下, ...

  5. 尝试asp.net mvc 基于controller action 方式权限控制方案可行性

    微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...

  6. 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程

    最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...

  7. javascript高性能编程-算法和流程控制

          代码整体结构是执行速度的决定因素之一. 代码量少不一定运行速度快, 代码量多也不一定运行速度慢. 性能损失与代码组织方式和具体问题解决办法直接相关.       倒序循环可以提高性能,如: ...

  8. arcgis api for js入门开发系列七图层控制(含源代码)

    上一篇实现了demo的地图分屏对比模块,本篇新增图层控制模块,截图如下(源代码见文章底部): 图层控制模块实现的思路如下: 1.在地图配置文件map.config.js里面配置图层目录树节点信息,作为 ...

  9. 第10章 Shell编程(4)_流程控制

    5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...

随机推荐

  1. Eclipse报错could not write metadata for '/remotesystemstempfiles'

    1. windows-Preferences  中,在search中输入remote,取消选中reopen remote systems view to previous state'. 2. win ...

  2. WebGoat系列实验Buffer Overflows & Code Quality & Concurrency

    WebGoat系列实验Buffer Overflows & Code Quality & Concurrency Off-by-One Overflows 实验需要访问OWASP Ho ...

  3. c#打开关闭进程

    private const string FileName = "test.exe"; //进程名称不带扩展名 private const string ProcessName = ...

  4. Java打包多文件成zip

    package com.zh.java.util; import lombok.extern.slf4j.Slf4j; import java.io.File;import java.io.FileI ...

  5. ECS简介

    https://www.cnblogs.com/yangrouchuan/p/7436533.html Unity下的ECS框架 Entitas简介   最近随着守望先锋制作组在gdc上发布的一个关于 ...

  6. Python Flask模块

    模块是一个包含响应文本的文件,其中包含占用位变量表示的动态部分,其具体值只在请求的上下文中才知道.使用真实值替换变量,再返回最终得到的响应字符串,这一过程称为渲染.为了渲染模块,Flask使用一个名为 ...

  7. Jmeter-逻辑控制器之Switch控制器(Switch Controller)

    Switch控制器(Switch Controller): 作用:Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器.有两种赋值方式: 第一种是数值,Switch控制器下的子节点 ...

  8. SAP ABAP ALV构建动态输出列与构建动态内表(包留备用),包含操作abap元类型表及类

    https://blog.csdn.net/zhongguomao/article/details/51095946

  9. git相关问题处理

    1.在git push时无法提交代码,相对于git服务器上,本身代码可能不是最新的,因此提交的时候会报以下这个错误 Updates were rejected because the tip of y ...

  10. spring boot +Thymeleaf+mybatis 集成通用PageHelper,做分页

    controller: /**  * 分页查询用户  * @param request  * @param response  * @return  * @throws Exception  */ @ ...