zoukankan      html  css  js  c++  java
  • 嵌套ScrollView 左右滑动不影响上下滑动

    using UnityEngine;
    using System.Collections;
    
    public class UIMultDragScrollView : MonoBehaviour {
        public UIScrollView hScrollView;
        public UIScrollView vScrollView;
        public UIDragScrollView dragScrollView;
        public float directionTolerance = 0.2f;
        bool dragCheck = true; 
        public float direcDegle = 45;
        public void OnDrag(Vector2 delta)
        {
            int sd = -1;
            if (dragCheck)
            {
                dragCheck = false;
                sd = GetSwipeDirection(UICamera.currentTouch.delta, directionTolerance);
            }
            Debug.Log("swp"+sd);
            if( sd == 0)
            {
                Debug.Log("左");
                dragScrollView.scrollView = hScrollView;
                vScrollView.movement = UIScrollView.Movement.Custom;
                vScrollView.currentMomentum = new Vector3(0, 0);
                hScrollView.movement = UIScrollView.Movement.Horizontal;
                hScrollView.enabled = true;
                vScrollView.enabled = false;
                vScrollView.Press(false);
                hScrollView.Press(true);
               // hScrollView.Drag();
            }
            if (sd == 1)
            {
                Debug.Log("上");
                dragScrollView.scrollView = vScrollView;
                hScrollView.enabled = false;
                hScrollView.movement = UIScrollView.Movement.Custom;
                hScrollView.currentMomentum = new Vector3(0, 0);
                vScrollView.movement = UIScrollView.Movement.Vertical;
                vScrollView.enabled = true;
                hScrollView.Press(false);
                vScrollView.Press(true);
               // vScrollView.Drag();
            }
        }
        void OnPress(bool isDown)
        {
            if (isDown)
            {
                dragCheck = true;
            }
        }
        int GetSwipeDirection(Vector3 dir, float tolerance)
        {
            float minSwipeDot = Mathf.Clamp01(1.0f - tolerance);
            if (Mathf.Rad2Deg * (Mathf.Acos(Vector2.Dot(dir, Vector2.right) / (dir.magnitude * Vector2.right.magnitude))) <= direcDegle
                && Vector2.Dot(dir, Vector2.right) >= minSwipeDot)
                return 0;
            if (Mathf.Rad2Deg * (Mathf.Acos(Vector2.Dot(dir, -Vector2.right) / (dir.magnitude * (-Vector2.right).magnitude))) <= direcDegle
                && Vector2.Dot(dir, -Vector2.right) >= minSwipeDot)
                return 0;
            if (Mathf.Rad2Deg * (Mathf.Acos(Vector2.Dot(dir, Vector2.up) / (dir.magnitude * Vector2.up.magnitude))) <= 90 - direcDegle
                && Vector2.Dot(dir, Vector2.up) >= minSwipeDot)
                return 1;
            if (Mathf.Rad2Deg * (Mathf.Acos(Vector2.Dot(dir, -Vector2.up) / (dir.magnitude * (-Vector2.up).magnitude))) <= 90 - direcDegle
                && Vector2.Dot(dir, -Vector2.up) >= minSwipeDot)
                return 1;
            return -1;
        }
    }
    

      

  • 相关阅读:
    UVA1401 Remember the word DP+Trie
    LG5202 「USACO2019JAN」Redistricting 动态规划+堆/单调队列优化
    模拟赛总结合集
    LG5201 「USACO2019JAN」Shortcut 最短路树
    LG5200 「USACO2019JAN」Sleepy Cow Sorting 树状数组
    LG5196 「USACO2019JAN」Cow Poetry 背包+乘法原理
    20190922 「HZOJ NOIP2019 Round #7」20190922模拟
    LG2530 「SHOI2001」化工厂装箱员 高维DP+记忆化搜索
    LG2893/POJ3666 「USACO2008FEB」Making the Grade 线性DP+决策集优化
    关于对QQ 输入法的评价
  • 原文地址:https://www.cnblogs.com/hersen/p/3946390.html
Copyright © 2011-2022 走看看