LeanTouch控制移动
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控制移动的更多相关文章
- [APUE]进程控制(上)
一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstr ...
- 详解树莓派Model B+控制蜂鸣器演奏乐曲
步进电机以及无源蜂鸣器这些都需要脉冲信号才能够驱动,这里将用GPIO的PWM接口驱动无源蜂鸣器弹奏乐曲,本文基于树莓派Mode B+,其他版本树莓派实现时需参照相关资料进行修改! 1 预备知识 1.1 ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整-控制反转和依赖注入的使用
再次调整项目架构是因为和群友dezhou的一次聊天,我原来的想法是项目尽量做简单点别搞太复杂了,仅使用了DbContext的注入,其他的也没有写接口耦合度很高.和dezhou聊过之后我仔细考虑了一下, ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程
最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...
- javascript高性能编程-算法和流程控制
代码整体结构是执行速度的决定因素之一. 代码量少不一定运行速度快, 代码量多也不一定运行速度慢. 性能损失与代码组织方式和具体问题解决办法直接相关. 倒序循环可以提高性能,如: ...
- arcgis api for js入门开发系列七图层控制(含源代码)
上一篇实现了demo的地图分屏对比模块,本篇新增图层控制模块,截图如下(源代码见文章底部): 图层控制模块实现的思路如下: 1.在地图配置文件map.config.js里面配置图层目录树节点信息,作为 ...
- 第10章 Shell编程(4)_流程控制
5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...
随机推荐
- KMS激活工具
工具介绍 KMS_VL_ALL,国外MDL论坛的一款KMS激活工具,可自动识别需要激活的Windows以及Office的VL版本,无需联网即可全自动检测激活,支持创建自动续期计划,相比于国外的同类工具 ...
- 美团热更新Robust Demo演示
1.Android Studio clone 远程Robust项目源码 gradle 同步依赖资源,可能需要半个小时左右. 2.生成样例apk包 配置app module下build.gradle 插 ...
- Dojo Javascript 编程规范(转)
前言 相当不错的 Javascript 编程风格规范,建议大家采用此规范编写 Javascript.原文链接: http://dojotoolkit.org/developer/StyleGuide ...
- 乱谈zip、rar文件格式
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2006.11.21最近更新:2006.11.25 目录一.目录表(TOC)与分卷(Volume)二.固实(solid)压缩方 ...
- ubuntu重新安装 apache2
$ sudo apt-get --purge remove apache2 $ sudo apt-get --purge remove apache2.2-common $ sudo apt-get ...
- Linux文件锁flock ,检测进程是否已经存在
在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. 头文件:#include<sys/fil ...
- 【转载】在AspNetCore 中 使用Redis实现分布式缓存
原文地址:https://www.cnblogs.com/szlblog/p/9045209.html AspNetCore 使用Redis实现分布式缓存 上一篇讲到了,Core的内置缓存:IMemo ...
- jQuery到Vue的迁移之路
背景 在前段时间做了L10的某个超复杂超多坑的三端专题之后,组里的小伙伴们一致认为是时候想办法统一一下组里的开发模式了.因为用nie那一套jQuery/zepto(下文jQuery默认包括zepto) ...
- loj #6077. 「2017 山东一轮集训 Day7」逆序对
#6077. 「2017 山东一轮集训 Day7」逆序对 题目描述 给定 n,k n, kn,k,请求出长度为 n nn 的逆序对数恰好为 k kk 的排列的个数.答案对 109+7 10 ^ 9 ...
- sql开发技巧总结-2
---恢复内容开始--- 1.如何进行行列转换 需求: 列转换成行 select a.`user_name`,sum(b.kills) from user1 a join user_kills b o ...