EasyTouch插件的使用

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,区域响应。



猜你喜欢

转载自blog.csdn.net/a962035/article/details/80220643