前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyTouch基本用法

EasyTouch基本用法

作者头像
全栈程序员站长
发布2022-09-20 10:21:38
7600
发布2022-09-20 10:21:38
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

EasyTouch基本用法

本文提供全流程,中文翻译。 Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)

1

hierarchy (层次面板)中创建 EasyTouch

这里写图片描述
这里写图片描述

2

using – 引用命名空间

HedgehogTeam 是他们团队名称。—— 刺猬

代码语言:javascript
复制
using HedgehogTeam.EasyTouch;

3

EasyTouch.4_x 版本的基本写法

运用事件+委托的方式

(相较于 EasyTouch.5_x 的写法。节省性能,不过要麻烦一些)

代码语言:javascript
复制
using UnityEngine;
using HedgehogTeam.EasyTouch;//引用命名空间



/// <summary>
/// EasyTouch 4 版本的基本写法
/// </summary>
public class Easy4 : MonoBehaviour
{


    /// <summary>
    /// 在OnEnable中注册EasyTouch事件
    /// </summary>
    private void OnEnable()
    {
        //添加委托
        EasyTouch.On_TouchStart += OnTouchStart;
        EasyTouch.On_TouchUp += OnTouchEnd;
        EasyTouch.On_Swipe += OnTouchSwipe;
    }



    /// <summary>
    /// 在OnDisable中取消注册事件
    /// </summary>
    private void OnDisable()
    {
        //删除委托
        EasyTouch.On_TouchStart -= OnTouchStart;
        EasyTouch.On_TouchUp -= OnTouchEnd;
        EasyTouch.On_Swipe -= OnTouchSwipe;
    }



    /// <summary>
    /// 在OnDestroy中删除注册事件
    /// </summary>
    private void OnDestroy()
    {
        //删除委托
        EasyTouch.On_TouchStart -= OnTouchStart;
        EasyTouch.On_TouchUp -= OnTouchEnd;
        EasyTouch.On_Swipe -= OnTouchSwipe;
    }



    /// <summary>
    /// 开始手势
    /// </summary>
    /// <param name="gesture"></param>
    void OnTouchStart(Gesture gesture)
    {
        print("OnTouchStart");
        print(gesture.startPosition + "开始坐标");
    }



    /// <summary>
    /// 结束手势
    /// </summary>
    /// <param name="gesture"></param>
    void OnTouchEnd(Gesture gesture)
    {
        print("OnTouchEnd");
        print(gesture.position + "结束坐标");
        print(gesture.actionTime + "结束持续了多久");
    }



    /// <summary>
    /// 拖动手势
    /// </summary>
    /// <param name="gesture"></param>
    void OnTouchSwipe(Gesture gesture)
    {
        print("OnTouchSwipe");
        print(gesture.position + "拖动坐标");
        print(gesture.actionTime + "拖动持续了多久");
        print(gesture.swipe + "类型");
    }
}

4

EasyTouch.5_x 版本的基本写法

通过系统自带函数 Update 內建方法体,来直接完成判定

(由于每帧都需要容错,稍微的消耗性能,不过要简单许多)

提示: EasyTouch.5_x 版本中 加强了易用性!

EasyTouch 被设为单例。就算 Hierarchy 中不创建 EasyTouch。在场景运行时,系统会自动完成创建。

代码语言:javascript
复制
using UnityEngine;
using HedgehogTeam.EasyTouch;//引用命名空间



/// <summary>
/// Easy5 版本的基本写法
/// </summary>
public class Easy5Write : MonoBehaviour
{


    /// <summary>
    /// 更新函数
    /// </summary>
    void Update()
    {
        //用 EasyTouch.current 记录玩家输入的手势 presentGesture
        Gesture presentGesture = EasyTouch.current;

        //容错 (当玩家没有手势输入的时候)
        if (presentGesture!=null)
        {
            //以下判断 玩家手势类型 是否和 EasyTouch系统手势类型相同
            if (EasyTouch.EvtType.On_TouchStart == presentGesture.type)
            {
                OnTouchStart(presentGesture);
            }
            else if (EasyTouch.EvtType.On_TouchUp == presentGesture.type)
            {
                OnTouchEnd(presentGesture);
            }
            else if (EasyTouch.EvtType.On_Swipe == presentGesture.type)
            {
                OnTouchSwipe(presentGesture);
            }
        }
    }



    /// <summary>
    /// 开始手势
    /// </summary>
    /// <param name="gesture"></param>
    void OnTouchStart(Gesture gesture)
    {
        print("OnTouchStart");
        print(gesture.startPosition + "开始坐标");
    }



    /// <summary>
    /// 结束手势
    /// </summary>
    /// <param name="gesture"></param>
    void OnTouchEnd(Gesture gesture)
    {
        print("OnTouchEnd");
        print(gesture.position + "结束坐标");
        print(gesture.actionTime + "结束持续了多久");
    }



    /// <summary>
    /// 拖动手势
    /// </summary>
    /// <param name="gesture"></param>
    void OnTouchSwipe(Gesture gesture)
    {
        print("OnTouchSwipe");
        print(gesture.position + "拖动坐标");
        print(gesture.actionTime + "拖动持续了多久");
        print(gesture.swipe + "类型");
    }
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167655.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1
    • hierarchy (层次面板)中创建 EasyTouch
    • 2
      • using – 引用命名空间
      • 3
        • EasyTouch.4_x 版本的基本写法
        • 4
          • EasyTouch.5_x 版本的基本写法
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档