
EasyTouch4_x是订阅事件,类似addlistener。
EasyTouch5_x是获取当前事件。
using UnityEngine;
using HedgehogTeam.EasyTouch;
public class test0 : MonoBehaviour {
//在OnEnable中订阅Easytouch中的事件
private void OnEnable()
{
//委托
EasyTouch.On_TouchStart += OnTouchStart;
}
//在OnDisable和OnDestroy中取消订阅EasyTouch中对应的事件
private void OnDisable()
{
EasyTouch.On_TouchStart -= OnTouchStart;
}
private void OnDestroy()
{
EasyTouch.On_TouchStart -= OnTouchStart;
}
//gesture由EasyTouch系统传递过来,包含触碰的很多信息,可用于方法中的调用
void OnTouchStart(Gesture gesture)
{
Debug.Log("Start");
Debug.Log("StartPosition"+gesture.startPosition);
//触碰时长
Debug.Log("StartPosition" + gesture.actionTime);
}
}该写法不用写订阅事件,而是用EasyTouch.current获取玩家当前输入的手势,与EasyTouch预定义的手势进行对比,可根据结果进行各种行为
using UnityEngine;
using HedgehogTeam.EasyTouch;
public class test1 : MonoBehaviour {
private void Update()
{
//通过EasyTouch.current获取玩家当前输入的手势
Gesture currentGesture =EasyTouch.current;
//当前屏幕上的手势类型currentGesture.type是否等于On_TouchStart类型
//当无输入时,EasyTouch.current为null,currentGesture.type获取不到当前类型,系统会报错
if (currentGesture!=null && EasyTouch.EvtType.On_TouchStart == currentGesture.type)
{
OnTouchStart(currentGesture);
Debug.Log("StartPosition" + currentGesture.startPosition);
}
}
void OnTouchStart(Gesture gesture)
{
Debug.Log("Start");
Debug.Log("StartPosition" + gesture.startPosition);
//触碰时长
Debug.Log("StartPosition" + gesture.actionTime);
}
}大家还有什么问题,欢迎在下方留言!