欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用EasyTouch插件进行滑动手势的操作

程序员文章站 2024-03-24 17:50:22
...
using System.Collections;
using System.Collections.Generic;
using HedgehogTeam.EasyTouch;
using UnityEngine;

public class TestMapCtr : MonoBehaviour
{
    public TweenPosition mapTween;              //利用NGUi里面的Tween组件,创建一个Tween动画
    public UIButton showbutton;
    
    void Awake()
    {
        EventDelegate.Add(showButton.onClick, delegate() { OnShowButtonClick(); });
    }

    void Update()
    {
	OnSwipeGesture();
} void OnShowButtonClick() { mapTween.PlayForward(); }

    
    //判断条件然后实现向右滑动手势隐藏小地图
    private void OnSwipeGesture()
    {
        //利用easytouch定义手势
        Gesture currentGesture = EasyTouch.current;
	//鼠标按下的那个点
        Vector2 gestureStartPos = currentGesture.startPosition;
	//鼠标抬起的那个点
        Vector2 gestureEndPos = currentGesture.position;

        //先判断鼠标按下的位置必须在一块区域之内
        if (gestureStartPos.x>2060.0f && gestureStartPos.y>1127.0f)
        {
	    //判断按下后执行了手势向右滑的操作没
            if (currentGesture.swipe == EasyTouch.SwipeDirection.Right)
            {
		//判断鼠标抬起位置的x点比按下位置的x点大,和抬起位置的y点大于等于按下位置的那个点
                if (gestureEndPos.x > gestureStartPos.x && gestureEndPos.y >= 1127.0f)
                {
                    MapTween.PlayReverse();
                }
            }
        }
    }

}
这段代码还存有一个bug,就是先满足第一个if语句,然后把鼠标拖出到区域外,然后满足第二个if语句,再满足第三个if语句,也可以执行MapTween.PlayReverse();