(1)导入EasyTouch5插件,注意该插件对Unity有版本要求函数
(2)首先在场景中建立一个EasyTouch,这个是必需的,它是进行检测的核心组件,场景中有任何物体使用了EasyTouch的东西都要加载它测试
(3) 首先看一下在4.x中的写法(指这个插件的4代)ui
using System.Collections; using System.Collections.Generic; using UnityEngine; using HedgehogTeam.EasyTouch; public class EasyTouch4_xDemo : MonoBehaviour { // 在OnEnable中订阅EasyTouch中的事件 private void OnEnable() { EasyTouch.On_TouchStart += OnTouchStart; EasyTouch.On_TouchUp += OnTouchEnd; EasyTouch.On_Swipe += OnSwipe; } // 在OnDisable和OnDestroy中取消订阅OnEnable中对应的事件 private void OnDisable() { EasyTouch.On_TouchStart -= OnTouchStart; EasyTouch.On_TouchUp -= OnTouchEnd; EasyTouch.On_Swipe -= OnSwipe; } private void OnDestroy() { EasyTouch.On_TouchStart -= OnTouchStart; EasyTouch.On_TouchUp -= OnTouchEnd; EasyTouch.On_Swipe -= OnSwipe; } // Gesture是EaayTouch定义的类,在屏幕上的全部操做都是Gesture // 若是咱们定义的方法须要EasyTouch帮咱们调用,须要加上这个形参 void OnTouchStart(Gesture gesture) { Debug.Log("OnTouchStart"); Debug.Log("startPosition" + gesture.startPosition); } void OnTouchEnd(Gesture gesture) { Debug.Log("OnTouchEnd"); Debug.Log("actionTime" + gesture.actionTime); } void OnSwipe(Gesture gesture) { Debug.Log("OnSwipe"); Debug.Log("swipe" + gesture.swipe); } }
上面咱们本身定义了3个方法(OnTouchStart、OnTouchEnd、OnSwipe),参数使用了Gesture,而后在当前脚本开始及结束的时候,把咱们定义的3个方法注册进EasyTouch的内部方法(EasyTouch.On_TouchStart、EasyTouch.On_TouchUp、EasyTouch.On_Swipe)中,这样当咱们在屏幕上触发事件的时候,咱们挂在场景中的EasyTouch核心组件会检测到并执行相关函数。具体的内部方法不用管,这里只是作个演示。插件
运行:code
(4) 首先看一下在5.x中的写法,推荐使用这种blog
using System.Collections; using System.Collections.Generic; using UnityEngine; using HedgehogTeam.EasyTouch; public class EasyTouch5_xDemo : MonoBehaviour { void Update() { // EasyTouch5.x版本中的新特性能够不用书写订阅事件等一套语句 // 经过EasyTouch.current来获取当前玩家输入的手势 Gesture currentGesture = EasyTouch.current; if(currentGesture != null && EasyTouch.EvtType.On_TouchStart == currentGesture.type) { // 写法1:直接在update里写游戏逻辑 Debug.Log("OnTouchStart"); Debug.Log("startPosition" + currentGesture.startPosition); } if(currentGesture != null && EasyTouch.EvtType.On_TouchUp == currentGesture.type) { // 写法2:将游戏逻辑放在单独的函数 OnTouchEnd(currentGesture); } if(currentGesture != null && EasyTouch.EvtType.On_Swipe == currentGesture.type) { OnSwipe(currentGesture); } } // Gesture是EaayTouch定义的类,在屏幕上的全部操做都是Gesture // 若是咱们定义的方法须要EasyTouch帮咱们调用,须要加上这个形参 void OnTouchEnd(Gesture gesture) { Debug.Log("OnTouchEnd"); Debug.Log("actionTime" + gesture.actionTime); } void OnSwipe(Gesture gesture) { Debug.Log("OnSwipe"); Debug.Log("swipe" + gesture.swipe); } }
(5)新特性之QucikGesture游戏
除了上面两种方法,该插件还给咱们提供了方便的功能,能够在须要检测的物体上添加EasyTouch的一系列组件来检测事件
它能够添加以下新特性:拖动,触摸,长按,缩放,滑动,单双击,旋转ip
注意:在测试中须要使用两根手指的地方,先按Ctrl键预设置一个点A,A点为中点。而后测试的时候按住Alt键移动控制,会在鼠标点生成一个点B,以A为中心生成另外一个点C,B和C就表明两根手指。ci
在EasyTouch5.0.17版本中,Quick Pinch的End事件是没法触发的,On_PinchEnd与On_TwistEnd的触发重合了,且会一直触发On_TwistEnd,这是这个版本的缺陷。
(6)新特性之EasyTouchTrigger
上面还有一个Trigger能够选