当前位置: 首页 > news >正文

做网站能赚钱么用wordpress搭建知名网站

做网站能赚钱么,用wordpress搭建知名网站,wordpress的polylang,怎么找网红合作卖东西Unity3D 解决 UI 嵌套滚动视图滑动问题。 嵌套滚动视图 滑动问题 在游戏开发中#xff0c;我们常常会遇到一种情况#xff0c;在一个滚动视图列表中#xff0c;每个 item 还包含了一个内嵌的滚动视图。 这样#xff0c;当我们在滑动外层的滚动视图时#xff0c;如果点…Unity3D 解决 UI 嵌套滚动视图滑动问题。 嵌套滚动视图 滑动问题 在游戏开发中我们常常会遇到一种情况在一个滚动视图列表中每个 item 还包含了一个内嵌的滚动视图。 这样当我们在滑动外层的滚动视图时如果点击位置在内嵌的滚动视图上很可能滑不动内外层滚动视图的滑动事件出现了冲突。 如下图所示点击位置在奖励文本上时是可以正常滑动的。但是点击位置在奖励列表时滑动方向变成了左右而不是期望的上下滑动。 解决方案 通常的解决方案是根据拖拽的增量判断滑动的方向如果方向与内层的方向相同则优先滑动内层如果方向不同则传递滑动事件给外层的滚动视图。 为此我们创建一个脚本 CustomScrollRect.cs继承 ScrollRect并重写它的一些方法。 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class CustomScrollRect : ScrollRect {protected override void Awake(){base.Awake();}public override void OnBeginDrag(PointerEventData eventData){base.OnBeginDrag(eventData);}public override void OnDrag(PointerEventData eventData){base.OnDrag(eventData);}public override void OnEndDrag(PointerEventData eventData){base.OnEndDrag(eventData);}public override void OnScroll(PointerEventData eventData){base.OnScroll(eventData);} }首先在 Awake 中获取父节点的 CustomScrollRect 组件。 这里使用的 GetComponentInParent会从当前节点开始查找递归遍历其父节点。 所以要从 transform.parent 开始遍历避免获取到自己身上的 CustomScrollRect 组件。 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class CustomScrollRect : ScrollRect {CustomScrollRect parent;protected override void Awake(){base.Awake();if (parent null){parent transform.parent.GetComponentInParentCustomScrollRect();}}// ... }同时在类内部定义一个方向枚举在 Awake 时记录当前的方向。 这里仅判断是水平还是垂直通常不会有两个方向都能滑动的情况。 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class CustomScrollRect : ScrollRect {CustomScrollRect parent;enum Direction{horizontal,vertical}Direction curDirection;Direction dragDirection;protected override void Awake(){base.Awake();if (parent null){parent transform.parent.GetComponentInParentCustomScrollRect();}curDirection horizontal ? Direction.horizontal : Direction.vertical;}// .. }然后在开始拖拽时根据 eventData.delta 的 x 和 y 变量增幅哪个较大判断滑动的方向。 当拖拽的方向和当前方向不同且有外层滚动视图时把 beginDragHandler 传递给外层如果不符合条件则执行自身的 OnBeginDrag 事件。 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class CustomScrollRect : ScrollRect {// ...public override void OnBeginDrag(PointerEventData eventData){// 判断拖拽的方向dragDirection Mathf.Abs(eventData.delta.x) Mathf.Abs(eventData.delta.y)? Direction.horizontal : Direction.vertical;// 拖拽的方向和当前方向不同且有外层滚动视图if (dragDirection ! curDirection parent ! null){// 把 beginDragHandler 传递给外层ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.beginDragHandler);// 不执行自身的 OnBeginDrag 事件return;}// 执行自身的 OnBeginDrag 事件base.OnBeginDrag(eventData);} }依此类推在其他方法中也加上这样的判断dragDirection 可以仅在开始拖拽时赋值。 需要注意的是 OnBeginDrag 方法传递的事件是 beginDragHandlerOnDrag 方法传递的事件是 dragHandlerOnEndDrag 方法传递的事件是 endDragHandlerOnScroll 方法传递的事件是 scrollHandler using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class CustomScrollRect : ScrollRect {// ...public override void OnDrag(PointerEventData eventData){if (dragDirection ! curDirection parent ! null){ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.dragHandler);return;}base.OnDrag(eventData);}public override void OnEndDrag(PointerEventData eventData){if (dragDirection ! curDirection parent ! null){ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.endDragHandler);return;}base.OnEndDrag(eventData);}public override void OnScroll(PointerEventData eventData){if (dragDirection ! curDirection parent ! null){ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.scrollHandler);return;}base.OnScroll(eventData);} }使用说明 移除掉原来的 ScrollRect 组件换上 CustomScrollRect 组件。 记得要拖拽 Viewport 和 Content 节点。 内外层滚动视图都需要换上 CustomScrollRect 组件。 最终效果如图 完整代码 CustomScrollRect.cs using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class CustomScrollRect : ScrollRect {CustomScrollRect parent;enum Direction{horizontal,vertical}Direction curDirection;Direction dragDirection;protected override void Awake(){base.Awake();if (parent null){parent transform.parent.GetComponentInParentCustomScrollRect();}curDirection horizontal ? Direction.horizontal : Direction.vertical;}public override void OnBeginDrag(PointerEventData eventData){// 判断拖拽的方向dragDirection Mathf.Abs(eventData.delta.x) Mathf.Abs(eventData.delta.y)? Direction.horizontal : Direction.vertical;// 拖拽的方向和当前方向不同且有外层滚动视图if (dragDirection ! curDirection parent ! null){// 把 beginDragHandler 传递给外层ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.beginDragHandler);// 不执行自身的 OnBeginDrag 事件return;}// 执行自身的 OnBeginDrag 事件base.OnBeginDrag(eventData);}public override void OnDrag(PointerEventData eventData){if (dragDirection ! curDirection parent ! null){ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.dragHandler);return;}base.OnDrag(eventData);}public override void OnEndDrag(PointerEventData eventData){if (dragDirection ! curDirection parent ! null){ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.endDragHandler);return;}base.OnEndDrag(eventData);}public override void OnScroll(PointerEventData eventData){if (dragDirection ! curDirection parent ! null){ExecuteEvents.Execute(parent.gameObject, eventData,ExecuteEvents.scrollHandler);return;}base.OnScroll(eventData);} }
http://www.w-s-a.com/news/671573/

相关文章:

  • 阿里云服务器网站开发青岛做网站找哪家
  • 凡科做的网站为什么打不开织梦cms仿某作文网站整站源码(带采集)安装数据库
  • 免费h5模板网站模板汽车报价网址
  • 蔡甸网站建设烟台网站建设yt
  • 最流行的网站开发新开的网页游戏平台
  • 暴富建站wordpress 标签分类
  • 搞笑网站源码百度快照替代
  • 重庆网站建设哪家公司哪家好关键词是怎么排名的
  • 青县网站建设今天国际大事新闻
  • 深圳正规网站制作哪里好怎样优化网络
  • 米拓网站建设教程dw成品网站成品视频教学
  • 用jsp做的网站源代码天门网站网站建设
  • 百度如何把网站做链接地址有没有资源可以在线观看
  • 淮安做网站找哪家好电子商务网站建设规划书的内容
  • 开发网站建设用什么框架php黄页系统
  • 聊城制作网站全球十大电商平台排名
  • 用什么来网站开发好mega menu wordpress
  • 深圳制作网站有用吗wordpress的主题
  • 网站的规划与创建天津市南开区网站开发有限公司
  • 免备案网站主机建站哪个平台好
  • python做网站 不适合单页营销分享网站
  • 珠海市研发网站建设建设网站挣钱
  • 阿里巴巴国际站特点做wps的网站赚钱
  • wordpress更换域名后网站打不开宜昌建设银行网站
  • 写出网站开发的基本流程百度网页电脑版入口
  • 网站设计有限公司怎么样网站建设西班牙语
  • 网站安全解决方案宁波seo网络推广优化价格
  • 做网站带来好处wordpress可以做oa系统吗
  • 建筑设计人才招聘网站h5营销型网站suteng
  • 做app和网站怎样如何做html网站