NGUI ScrollView总结

1顶级父类加boxCollider和UIDragScrollView脚本保证在item拖走后也能通过拖拽剩余区域的方式操作。

2下一级添加UIPanel在Clipping设定区域,注意如果设定softClip就不能保证item填满,会从alpha值为1的地方开始填充。

3添加UIScrollView脚本和SpringPanel脚本(如果位置不是zero要在SpringPanel中设置)。

4再下级如要保证item位置总是合适则添加UICenterOnChild脚本(如果添加则不能保证充满),如要自动排列item则添加UIGrid脚本,注意此级的位置,他的位置会决定自动排列的item的起始位置。

5item级如果有boxCollider则要添加UIDragScrollView脚本,保证拖动item时也能响应。

6item级如果有boxCollider可以添加UICenterOnClick脚本通过点击使自己居中。

在NGUI中,ScrollView是一个非常棒的界面,不过刚开始使用的时候一直一些事项没有搞懂,现在算是明白了,可以轻松上手了,下面把一些注意的问题写出来分享一下。

一个是回弹问题,开始做的时候,一直没有明白例子中那个回弹的效果是如何实现,如图这样的效果

确实这个效果在IOS上非常流行,用户体验也很棒,它的原理也是利用一个UIDragPanelContents代码控件完成的。

在window的UIPanel里面有这么一个物体Outline,在例子界面上的作用是一个ScrollView背景,之所以可以回弹全靠这个,点击这个物体,给它添加一个Collier和UIDragPanelContents,将Draggable Panel属性设置为Clipped View即可看到效果了,记住这个背景最好放大些,这样手指只要在这个背景的区域内都可以滑动ScrollView了。

如果在自己的界面中不想看到这层背景,但是没有这层又不行,最好的方法就是把这层的Alpha值设为0,这样就变成透明的了,也就看不到了

当然,如果你的里面放置的仅仅是文本图片之类的,基本就结束了,但是如果是响应的控件,比如按钮,可以会有无法响应的问题,就是可以滑动,但是按钮无法被点击,造成的原因其实是Collider的前后关系,这层触摸背景的Collider比按钮的Collider要靠前,造成触发器先接受到了,所以按钮就不响应了。

解决办法就是把触摸背景这层的Z轴放后一些,放在按钮的后面,这样问题就可以解决了。

二是ScrollView里面的Item没有被装满却可以被拉动,会造成Item的位置改变而无法回复原位,如果不想被拉动,只有里面的Item超过了显示界面才可以被拉动,只需要勾上ScrollViewPanel上的Disable Drag If Fits即可。

时间: 2024-08-05 14:44:16

NGUI ScrollView总结的相关文章

NGUI ScrollView出屏幕再回来坐标混乱解决

主要是子节点没更新.乍一看调用UIPanel的Refresh()会管用,其实不然. 解决方法调用UIPanel的Invalidate让他所有子节点更新. panel.Invalidate(true); NGUI ScrollView出屏幕再回来坐标混乱解决

Unity NGUI ScrollView 苹果式滑动

又回来写博客了,这回已经开始上班了,所以就发一发工作中解决的难题吧. 单个展示Panel(苹果式) 以前对UI的滑动组件很烦心,不是很会用,这回项目要求写一个类似于苹果的文件滑动效果,但是苹果就展示一个文件,而我这边展示数目不定,头疼! 下面就直接来干货吧~,这里附送一个苹果式滑动解决方式 : 点这里 多个展示Panel(改写) 而我追求的效果呢,稍微改动一下,如下:(中间显示很多个,旁边的在叠起来的效果) 这里我们采用比例的方式,这样好控制一些. 几个比较重要的点: 每个Panel之间的比例差

NGUI ScrollView动态添加Item(不用GameObject.Find()去查找需要动态改变的游戏对象)

借鉴网上的提示,但具体的网址忘记保存了,因此无法放在这里!如需要注明出处,请联系本人. PS:网上说的不够详细,自己敲了下代码实现并整理了一下. 下面我用UITable组件而不是UIGrid来排序Item 将Item做成预设体,如下图中的3:QuestLog(此GO对应官方的例子中的QuestLog) 在预置体QuestLogPrefab中的GO对象QuestLog上挂脚本,如上图中1:脚本命名为QuestLogPrefab(当然类名也一样),然后在脚本里声明你需要动态改变数据的GO,记得需要p

NGUI研究之开发项目的一些使用心得比較细节

 不知不觉使用NGI插件已经有一段时间了.感觉NGUI真的是眼下Unity3D中最好用的UI插件. 可是它也有一些不是BUG的BUG,这些问题可能会让新人摸不着头脑,那么这篇文章将总结一下这段时间用NGUI的一些开发心得.这些也好几个朋友问题我的一些问题,我将这些东西列出来. 上一章我们学习了p=821" rel="bookmark">NGUI研究之自制Scroll View实现触摸滚动相冊效果不明确的同学能够去看看. 1.对图片的限制 假设是移动平台中iPhone

NGUI研究之开发项目的一些使用心得比较细节

 不知不觉使用NGI插件已经有一段时间了,感觉NGUI真的是目前Unity3D中最好用的UI插件.但是它也有一些不是BUG的BUG,这些问题可能会让新人摸不着头脑,那么这篇文章将总结一下这段时间用NGUI的一些开发心得,这些也好几个朋友问题我的一些问题,我将这些东西列出来. 上一章我们学习了NGUI研究之自制Scroll View实现触摸滚动相册效果不明白的同学可以去看看. 1.对图片的限制 如果是移动平台中iPhone 或Android请保持的你的图片尺寸在小于等于1024 X 1024

NGUI学习笔记(六):ScrollView、Grid和Table

下面我们来看看游戏UI开发中比较核心的开发,我称为列表开发,比如背包和各种形式不一的列表等,下面我们来看几个具体的样例:   基本上就是一些重复的制作好的多个UI控件进行排列,同时可以支持滚动,当然,高级一点的话也可能需要支持拖拽操作等. 下面我们来学习一下这些功能该如何使用NGUI实现,最后再给出一个具体的示例. 基础控件 NGUI已经帮助我们设计好了相关的组件,所以我们要实现上面的效果不需要从头开始,只要学会使用NGUI提供的相关的脚本即可,非常简单. ScrollView 即滚动视口组件,

NGUI制作ScrollView详解

教程说明 版本:NUGI 3.5.1 1.创建NGUI对象 2.创建ScrollView对象 3.为ScrollView添加UIGrid控件(要点1后面会说明) 4.给ScrollView添加滚动包含的对象,避免太复杂没法把握制作原理,只用简单的Sprite 5.依次给sprite添加触控响应(要点2,不添加就等着没效果) 和 拖动操作方式(要点3) 6.复制多个sprite,这时你发现这些都叠加在一起,这时UIGrid就发挥作用了,你只管运行看效果就知道,这些sprite会自动排版,强大的NG

Unity插件之NGUI学习(7)—— ScrollView(Panel)

今天介绍的ScrollView,參考的是NGUI(3.6.8)中的Example项目:Scroll View(Panel). 先依照Unity插件之NGUI学习(2)创建一个UI Root.然后在UI Root以下创建一个Scroll View,选择菜单NGUI->Create->Scroll View 然后在Inspector窗体做一些參数设置 Movement设置滚动Vertical纵向或者horizontal横向. Scroll Bars能够加入纵向或者横向的滚动栏控件(在这个项目中暂且

NGUI实现ScrollView功能

NGUI,目前Unity3D Assert Store中最火的2D图形界面工具. 本文假设读者有Unity3D使用经验.有基本了解.NGUI3.6.0 1.新建Pannel(Scroll View),确保Clliping为soft Clip 2.Add Component增加Scroll View 3.在Scroll View下增加一个Grid(UIGrid) 4.在该Grid下增加空游戏对象Item 5.构建Item,加入Label.Sprite(Tiled为背景,simple为前景) 6.选