• Unity判断手势在物品的滑动方向(上下左右)


     /*************
    ** Company: DX
    **SrtiptName:DragItem
    ** Auth:    CW
    ** Des:    文本描述
    ** Ver.:     V1.0.0
    *************/
    
    using UnityEngine;
    using System.Collections;
    using UnityEngine.EventSystems;
    using Kernal;
    
    namespace Global
    
    {
        public class DragItem : MonoBehaviour
        {
            /// <summary>
            /// 开始触摸的手指的位置
            /// </summary>
            private Vector3 _startTouchPos;
            private PointerEventData _pointerEventData;
            /// <summary>
            /// 拖拽的方向
            /// </summary>
            private E_DragDir _dragDir;
            void Start()
            {
                EventTriggerListener.Get(gameObject).OnMyBeginDrag += OnBeginDrag;
                EventTriggerListener.Get(gameObject).OnMyDrag += OnDrag;
                EventTriggerListener.Get(gameObject).OnMyEndDrag += OnEndDrag;
    
            }
    
    
            private void OnEndDrag(GameObject go, BaseEventData baseEventData)
            {
                _dragDir = E_DragDir.None;
            }
            private E_ClickPosType CurretClickType;
            private void OnDrag(GameObject go, BaseEventData baseEventData)
            {
                if (_pointerEventData.position.x > _startTouchPos.x)
                {
                    Log.Debug("往右边滑动");
                    _dragDir = E_DragDir.Right;
    
                }
                else if (_pointerEventData.position.x < _startTouchPos.x)
                {
                    Log.Debug("往左边滑动");
                    _dragDir = E_DragDir.Left;
                  
                }
                else if (_pointerEventData.position.y < _startTouchPos.y)
                {
                     Log.Debug("往下面滑动");
                    _dragDir = E_DragDir.Down;
                }
                else if (_pointerEventData.position.y > _startTouchPos.y)
                {
                    Log.Debug("往上面滑动");
                    _dragDir = E_DragDir.Up;
                    
                }
                _startTouchPos = _pointerEventData.position;
    
            }
    
            private void OnBeginDrag(GameObject go, BaseEventData baseEventData)
            {
    
                 _pointerEventData = baseEventData as PointerEventData;
                _startTouchPos = _pointerEventData.position;
            }
    
            /// <summary>
            /// 得到滑动的方向
            /// </summary>
            /// <returns></returns>
            public E_DragDir GetDragDir()
            {
                return _dragDir;
            }
        }
    }
  • 相关阅读:
    2019年牛客多校第一场 E题 ABBA DP
    2019年牛客多校第一场 B题 Integration 数学
    Codeforces Round #574 (Div. 2)题解
    Justice(HDU6557+2018年吉林站+二进制)
    Strength(HDU6563+2018年吉林站+双指针瞎搞)
    Lovers(HDU6562+线段树+2018年吉林站)
    The Tower(HDU6559+2018年吉林站+数学)
    Good Numbers(HDU5447+唯一分解)
    [iOS]C语言技术视频-01-变量的定义
    [Unity]Unity开发NGUI代码实现ScrollView(放大视图)
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/9287257.html
Copyright © 2020-2023  润新知