Unity大屏幕触摸插件TouchScript的使用笔记

Unity大屏幕触摸插件TouchScript的使用笔记

先添加相应组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

委托

//其他长按,双击等用法相同

 void Start () {
 		//点击
        GetComponent<PressGesture>().Pressed += pressHandler;
        //抬起
        GetComponent<ReleaseGesture>().Released += releasdHandler;
    }

private void pressHandler(object sender, EventArgs e){}
private void ReleaseGesture(object sender, EventArgs e){}

 private void OnDisable()
    {
        GetComponent<PressGesture>().Pressed -= pressHandler;
        GetComponent<ReleaseGesture>().Released -= releasdHandler;
    }

获得在物体上的触摸点的list组

IList<Pointer> p = GetComponent<PressGesture>().ActivePointers;

//Pointer的属性(项目中用到的一些属性)
		//TouchManager分配给触摸点的ID
 		public int Id { get; private set; }
 		
		//触摸点的类型,鼠标和触摸
        public PointerType Type { get; protected set; }
        
		//触摸点的位置
        public Vector2 Position
        {
            get { return position; }
            set { newPosition = value; }
        }

在press点击事件中每触摸一次发送一次触摸数据,不包含上次数据,只能在pressHandler()中获得

使用TouchManager获得触摸点
//TouchManager.Instance内有很多方法,具体看源码

void Start () 
{
		//每次有触摸点加入时都会触发,启动时会有id为-1的鼠标点进入
       TouchManager.Instance.PointersAdded += pointersAddedHandler;private void pointersAddedHandler(object sender, PointerEventArgs e)
{
    foreach (Pointer p in e.Pointers) {
        if(p.Id == -1)
        {
          TouchManager.Instance.CancelPointer(-1, true);//清除id为-1的点
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41719385/article/details/84645948