• 嵌套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;
        }
    }
    

      

  • 相关阅读:
    SpringBoot整合Swagger2
    AuthenticationToken的元素不满足实际情况,登录的时候需要有学校id或者其他参数
    nginx导入学成静态网页
    springboot使用枚举类型
    springboot配置多个yml文件
    尝试使用freemarker模板引擎生成打印文件
    多版本并发控制 MVCC 实现可重复读
    多版本并发控制 MVCC简介
    模拟3级分类信息查询
    IDEA去掉屏幕中间的白色竖线
  • 原文地址:https://www.cnblogs.com/hersen/p/3946390.html
Copyright © 2020-2023  润新知