(1)导入EasyTouch5插件,注意该插件对Unity有版本要求
(2)首先在场景中创建一个EasyTouch,这个是必需的,它是进行检测的核心组件,场景中有任何物体使用了EasyTouch的东西都要加载它
(3) 首先看一下在5.x中的写法,推荐使用这种
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;
public class EasyTouch5_xDemo : MonoBehaviour {
void Update()
{
// 通过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);
}
}
(4)新特性之QucikGesture
除了上面两种方法,该插件还给我们提供了方便的功能,可以在需要检测的物体上添加EasyTouch的一系列组件来检测
它可以添加如下新特性:拖动,触摸,长按,缩放,滑动,单双击,旋转
注意:在测试中需要使用两根手指的地方,先按Ctrl键预设置一个点A,A点为中点。然后测试的时候按住Alt键移动控制,会在鼠标点生成一个点B,以A为中心生成另一个点C,B和C就代表两根手指。
在EasyTouch5.0.17版本中,Quick Pinch的End事件是无法触发的,On_PinchEnd与On_TwistEnd的触发重合了,且会一直触发On_TwistEnd,这是这个版本的缺陷。
(5)新特性之EasyTouchTrigger
上面还有一个Trigger可以选