zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
  • 相关阅读:
    Anagram
    HDU 1205 吃糖果(鸽巢原理)
    Codeforces 1243D 0-1 MST(补图的连通图数量)
    Codeforces 1243C Tile Painting(素数)
    Codeforces 1243B2 Character Swap (Hard Version)
    Codeforces 1243B1 Character Swap (Easy Version)
    Codeforces 1243A Maximum Square
    Codeforces 1272E Nearest Opposite Parity(BFS)
    Codeforces 1272D Remove One Element
    Codeforces 1272C Yet Another Broken Keyboard
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/9287257.html
Copyright © 2011-2022 走看看