最近整理了一下项目用到的touch事件捕获管理逻辑,贴出来,算是记一下。
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public delegate void TouchEventHandler(TouchEventArgs args);
public class TouchManager : MonoBehaviour
{
public static TouchManager instance;
private static bool isInited = false;
public static bool IsInited()
{
return (null != instance && isInited);
}
public static TouchManager GetInstance()
{
return instance;
}
public event TouchEventHandler onFirstTouchBegan;
public event TouchEventHandler onFirstTouchMoved;
public event TouchEventHandler onFirstTouchEnded;
public event TouchEventHandler onTwoTouchMoved;
private Vector2 touchStartPos;
private bool getTwoTouch;
private float disBtwTouch;
private bool isMouseDown;
public void Start()
{
onFirstTouchBegan = new TouchEventHandler(InitFirstBeganHandler);
onFirstTouchMoved = new TouchEventHandler(InitFirstMovedHandler);
onFirstTouchEnded = new TouchEventHandler(InitFirstEndedHandler);
onTwoTouchMoved = new TouchEventHandler(InitTwoMovedHandler);
touchStartPos = Vector2.zero;
getTwoTouch = false;
isMouseDown = false;
instance = this;
isInited = true;
}
private void InitFirstBeganHandler(TouchEventArgs args)
{
//Debug.Log("InitFirstBeganHandler " + args.ToString());
}
private void InitFirstMovedHandler(Tou