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;
        }
    }
    

      

  • 相关阅读:
    libevent源码分析--(转)
    libevent源码分析(转)
    服务器模型---总结
    暴力英语学习法 + 严格的目标管理 = 成功快速靠谱的学好英语(转)
    log4net写入mysql完整例子
    form操作
    ASP.NET Razor
    java爬虫:在请求body中增加json数据采集
    asp.net mvc3登录验证
    远程复制无法读取源文件或磁盘
  • 原文地址:https://www.cnblogs.com/hersen/p/3946390.html
Copyright © 2011-2022 走看看