• EasyTouch基本用法


    EasyTouch基本用法


    本文提供全流程,中文翻译。

    Chinar坚持将简单的生活方式,带给世人!

    (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)




    1

    hierarchy (层次面板)中创建 EasyTouch

    这里写图片描述


    2

    using - 引用命名空间

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

    using HedgehogTeam.EasyTouch;

    3

    EasyTouch.4_x 版本的基本写法

    运用事件+委托的方式

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

    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。在场景运行时,系统会自动完成创建。

    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 + "类型");
        }
    }

    支持

    May Be —— 搞开发,总有一天要做的事!


    拥有自己的服务器,无需再找攻略!

    Chinar 提供一站式教程,闭眼式创建!

    为新手节省宝贵时间,避免采坑!


    先点击领取 —— 阿里全产品优惠卷 (享受最低优惠)


    1 —— 云服务器超全购买流程 (新手必备!)

    2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

    3—— Windows 服务器配置、运行、建站一条龙 !

    4 —— Linux 服务器配置、运行、建站一条龙 !





    Chinar


    END

    本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

    对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

    对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

  • 相关阅读:
    120. Triangle
    Effective C++ 条款36 绝不重新定义继承而来的non-virtual函数
    Effective C++ 条款31 将文件中间的编译依存关系降至最低
    Effective C++ 条款35 考虑virtual函数以外的其他选择
    Effective C++ 条款34 区分接口继承和实现继承
    Effective C++ 条款33 避免遮掩继承而来的名称
    Effective C++ 条款32 确定你的public继承塑模出is-a关系
    Effective C++ 条款30 透彻了解inlining的里里外外
    Effective C++ 条款29 为"异常安全"而努力是值得的
    Effective C++ 条款28 避免返回handles指向对象内部成分
  • 原文地址:https://www.cnblogs.com/chinarbolg/p/9601477.html
Copyright © 2020-2023  润新知