抽空研究了下Easy Touch 5插件,发现确实很好用,下面是相应的用法:

1. Easy Touch Controls:实现虚拟摇杆的组件

在项目的"Hierarchy"窗口下,创建摇杆操作点击GameObject=>EasyTouchControls=>Joystick,创建完之后会在Hierarchy面板出现摇杆物体,Game视图也会出现一个摇杆,这个插件应该是基于UGUI写的,它的物体出现方式和创建Canvas下的控件一样(所以自定义事件和UGUI添加事件的方法基本是类似的),也会出现Canvas和EventSystem,而Joystick也会成为Canvas的子物体。添加完摇杆,还会出现一个"InputManager"的游戏物体,这个应该是EasyTouch用来实现用户输入的控制的,如果删除这个游戏物体,游戏运行时就会动态生成这个游戏物体,下面是一些配置:

    名字、启动时是否可见,是否激活,如果有物理引擎,是需要使用FixedUpdate的

  摇杆显示的位置,偏移量、尺寸大小

 摇杆的轴配置,这是水平轴的,比如控制物体旋转,Speed设置为200,给它控制的物体(也可以使用Auto link on tag,使用标签方式),Action使用"Rotate Local",基于“Y"轴

 摇杆的轴配置,这是垂直轴的,用来配置延”Z"轴进行前后移动

   实现第三人称游戏时,经常需要相机跟随,可以“Enable tracking",使用”MainCamera",链接好要跟随的游戏物体,相机跟随使用“Smooth Follow",可以控制相机跟随的高度、距离、

   这个用来配置虚拟摇杆的图片

如果不用自动配置,想使用自己的代码来控制物体移动,代码中是使用:

ETCInput.GetAxis("Vertical")
ETCInput.GetAxis("Horizontal")

唯一不好的是这个插件导入后,给了一大堆示例和文档,如果是项目开发会增加不少的size,做了相应的精减,只有200多K了https://files-cdn.cnblogs.com/files/bearhb/EasyTouchControls-min.rar

2. Easy Touch:实现手势控制的组件

(1)Hierarchy窗口中必须右键,生成"EasyTouch" ->"EasyTouch"物体;

(2)QuickGesture:这个实在是太猛了, 如果想给某个游戏物体添加手势的一些事件,直接添加下面某个组件就可以了:

 例如一个cube如果想被拖动,直接添加“Quick Drag"组件,这个Cube就可以实现拖动了,而且拖动的事件和UGUI完全一致;

(3)如果需要在程序中进行手势判断,是需要下面的脚本:

using HedgehogTeam.EasyTouch;
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class TouchManager : MonoBehaviour
{
private Renderer ren;
private void Start()
{
ren = GetComponent<Renderer>();
}
void Update()
{ // 获取当前玩家输入的手势
Gesture currentGesture = EasyTouch.current;
//如果有手势
if (currentGesture != null)
{
//区分手势进行检测
switch (currentGesture.type)
{
//开始触摸
case EasyTouch.EvtType.On_TouchStart:
Debug.Log("OnTouchStart");
Debug.Log("startPosition" + currentGesture.startPosition);
OnTouchStart(currentGesture);
break;
//结束触摸
case EasyTouch.EvtType.On_TouchUp:
OnTouchEnd(currentGesture);
break;
//开始滑动
case EasyTouch.EvtType.On_Swipe:
OnSwipe(currentGesture);
break;
//简单点击下
case EasyTouch.EvtType.On_SimpleTap:
Debug.Log("点击下");
break;
//长按
case EasyTouch.EvtType.On_LongTap:
Debug.Log("长按");
break;
}
}
}
void OnTouchEnd(Gesture gesture)
{
Debug.Log("OnTouchEnd");
Debug.Log("actionTime" + gesture.actionTime);
} void OnSwipe(Gesture gesture)
{
Debug.Log("OnSwipe");
//滑动的枚举(上、下、左、右、其他)
Debug.Log("swipe" + gesture.swipe);
} void OnTouchStart(Gesture gesture)
{
if (gesture.pickedObject == gameObject)
{
ren.material.color = new Color(Random.Range(, 1.0f), Random.Range(, 1.0f), Random.Range(, 1.0f));
}
}
}

Unity插件研究-EasyTouch V5的更多相关文章

  1. 《图说VR入门》——Unity插件DK2使用教程

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53339254 作者:car ...

  2. Unity插件之Unity调用C#编译的DLL

    Unity插件分为两种:托管插件(Managed Plugins)和本地插件(Native Plugins).本文先来说说Unity中的托管插件,本地插件的文章留到下一篇文章再说. 有时候我们会有这样 ...

  3. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸

    依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...

  4. 【Unity插件】LitJson杂谈

    距离上一次更新博客已有一段时间了,一实习就懒了,嘿嘿.这次谈一下在实习里新碰到的一个Unity插件--LitJson(也可以去官网下载最新版). 开场白 LitJson是一个开源项目,比较小巧轻便,安 ...

  5. 导入Unity插件时出现Failed to import package with error: Couldn't decompress package

    导入Unity插件时出现Failed to import package with error: Couldn't decompress package 一开始以为压缩包本身有问题,坏了 后来发现在父 ...

  6. Unity插件-NGUI使用教程

    Unity插件-NGUI使用教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 NGUI 一款强大的次 ...

  7. Unity插件-ShareSDK使用指南

    Unity插件ShareSDK使用教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Summariz ...

  8. Egret3D学习笔记一 (Unity插件使用)

    一 官方教程: http://developer.egret.com/cn/github/egret-docs/Engine3D/getStarted/getStarted/index.html 大部 ...

  9. Android与Unity交互研究

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/46733221 Android与Unity交互研究 unity与android交互的由来 ...

随机推荐

  1. 【Canvas】勾画调和级数Harmonic series 曲线 y=1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+....

    相关资料:https://baike.baidu.com/item/%E8%B0%83%E5%92%8C%E7%BA%A7%E6%95%B0/8019971?fr=aladdin 调和级数(英语:Ha ...

  2. OpenJudge计算概论-忽略大小写比较字符串大小

    /*======================================================================= 忽略大小写比较字符串大小 总时间限制: 1000ms ...

  3. decimal赋值

    decimal dRebate1 = new decimal(1);decimal dRebate2 = Convert.ToDecimal(1);decimal dRebate3 = 1M; htt ...

  4. 猎豹网校C++ Primer学习笔记

    1.头文件(15th课) 大型项目开发,要有很多头文件.只能写声明,不能定义(类定义和常量定义可以). 自己新建头文件(类定义,外部变量声明,函数声明).源文件包含对应的头文件. 头文件里写类的声明, ...

  5. Quartz.Net 学习随手记之03 配置文件

    第一种方式:直接写入代码中 NameValueCollection properties = new NameValueCollection(); properties["quartz.sc ...

  6. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_10-前端显示当前用户-jwt查询接口

    定义接口 在api的项目里面定义.AuthControllerApi里面定义接口 jwtResult,里面就有一个jwt的字段. 实现接口 需要这三步 定义私有方法从cookie中读取访问令牌 参数需 ...

  7. PAT 甲级 1048 Find Coins (25 分)(较简单,开个数组记录一下即可)

    1048 Find Coins (25 分)   Eva loves to collect coins from all over the universe, including some other ...

  8. react 点击事件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 【ARTS】01_32_左耳听风-201900617~201900623

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  10. 讲不明白自杀系列:KMP算法

    算法:KMP排序 算法分析 KMP算法是一种快速的模式匹配算法.KMP是三位大师:D.E.Knuth.J.H.Morris和V.R.Pratt同时发现的,所以取首字母组成KMP. 少部分图片来自孤~影 ...