1.4.x的使用方式
4.x采用事件与委托的方式,将要执行的函数注册进EasyTouch的事件中,且场景中必须创建有EasyTouch游戏物体。
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中取消订阅EasyTouch中对应事件
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;
}
void OnTouchStart(Gesture gesture)
{
Debug.Log("OnTouchStart");
Debug.Log("startPosition:" + gesture.startPosition);
Debug.Log("TouchCOunt:" + gesture.touchCount);
}
void OnTouchEnd(Gesture gesture)
{
Debug.Log("OnTouchEnd");
Debug.Log("actionTime:" + gesture.actionTime);
}
void OnSwipe(Gesture gesture)
{
Debug.Log("OnSwipe");
Debug.Log("Type:" + gesture.swipe);
}
}
2.5.x使用
EasyTouch5.x版本中新特性可以不用书写订阅事件,通过EasyTouch.current获取玩家输入的手势;场景中可以不用创建EasyTouch游戏物体,当游戏运行时会自动创建。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;
public class EasyTouch5_xDemo : MonoBehaviour {
// EasyTouch5.x版本中新特性可以不用书写订阅事件
void Update () {
//通过EasyTouch.current获取玩家输入的手势
Gesture currentGesture = EasyTouch.current;
//将输入的手势与系统的手势类型进行对比
//当没有输入时(没有触摸屏幕时)EasyTouch.current会返回null
if(currentGesture!=null&& EasyTouch.EvtType.On_TouchStart==currentGesture.type)
{
//写法1:直接书写游戏逻辑
Debug.Log("OnTouchStart");
Debug.Log("startPosition:" + currentGesture.startPosition);
Debug.Log("TouchCOunt:" + currentGesture.touchCount);
}
if (currentGesture != null && EasyTouch.EvtType.On_TouchUp == currentGesture.type)
{
//写法2:将游戏逻辑放于一个方法中,进行调用
OnTouchEnd(currentGesture);
}
if (currentGesture != null && EasyTouch.EvtType.On_TouchStart == currentGesture.type)
{
OnSwipe(currentGesture);
}
}
void OnTouchEnd(Gesture gesture)
{
Debug.Log("OnTouchEnd");
Debug.Log("actionTime:" + gesture.actionTime);
}
void OnSwipe(Gesture gesture)
{
Debug.Log("OnSwipe");
Debug.Log("Type:" + gesture.swipe);
}
}
3. QuickGesture
3.1 QuickDrag
允许拖拽物体,必须要有碰撞器。
3.2 QuickEnterOverExit
当按下屏幕进入物体或者停留在物体或移出物体,须要有碰撞器。
3.3 QuickLongTag
长按时生效,可添加多个,设置Action triggering设置在什么时候触发,可以有Start(开始)、In Progress(长按中)、End(结束),执行相应的游戏逻辑。必须为物体添加碰撞器。
3.4 QuickPinch
多指时执行,可以通过Action设置多指时执行的效果类型,多指缩放、多指移动,多指旋转。当设置为必须两指对角线触碰到游戏物体才触发时,必须要有碰撞器;否则可以不用碰撞器。
3.5 QuickSwipe
滑动时触发,须有碰撞器。
3.6 QuickTap
单击或双击触发相应效果,须有碰撞器
3.7 QuickTwist
扭时触发。
3.8 QuickTouch
触摸时触发,须有碰撞器。
4. EasyTouchTrigger
Add New event可以添加多个触发事件类型,按下、触摸、滑动..........,在一个触发事件类型下也可以添加多个触发的trigger。5. EasyTouch的inspector面板
6. Joystick
7.TouchPad
创建TouchPad,区域响应。