Scroll View的使用:这是一个滚动视图的Panel。具体有什么效果实现了就知道了。

1、先创建一个Sprite作为背景,把这Sprite命令为window。然后我们在Sprite下面创建一个Scroll View。创建方法如如下图。

还有一种创建方法就是在场景选中你创建的Sprite(window),右击Create--Scroll View。(太多控件都可以再这里找到。)

2、创建完后我们可以看到Scroll View挂载着两个脚本,UIPanel和UIScroll View。下面我们先来看看UIScroll View的参数。

MoveMent:选择水平还是垂直滚动,你也可以Unrestricted随意拖动,或者自定义移动。

Drag Effect:拖动效果。

如果你想让你的滚动面板可以通过鼠标滑轮滚动,设置ScrollWheelFactor值。如果你想让鼠标滑轮反过来滚动面板,你可以设置负数。

Momentum Amount:控制什么时候开始拖动滚动视图。根据你的需要调整这个值来让它更灵敏或更不灵敏。

Restrict Within Panel:约束在panel里面,大多数都会选择这个选项

Cancel Drag If Fits选项将防止内容被拖出区域。如果关闭,会可以拖动内容到边界外,不过会有阻力。

Smooth Drag Start和IOS  Drag Emulation选项更给力通常你保留默认值即可。

下面来讲下UIpanel

UIPanel是一个保存并管理它下面所有挂件的组件。UIPanel负责通过挂件的几何结构创建真正的draw call。如果没有Panel,没有任何东西能被绘制出来。如果你熟悉Unity,你可以把UIPanel看成是一个Renderer。

UIPanel继承了它的子类UIRect所有功能。

所有Panel都一个Depth值影响着他下面的所有挂件。如果你正在创建一个使用多个窗口的复杂UI,通常最好的做法是每个窗口有一个UIPanel。请确认你的panel不会拥有相同的depth值。如果这个值是一样的,为了保证绘制顺序,draw call将会开始频繁分割,这将导致产生比平常更多的draw call。

(ps:关于Panel这东西貌似挺复杂的,下节课再详细讲下了,今天先说个大概)

(注意:大家创建了Scroll View后记得调整下view 的宽高,调整到与背景宽高,在场景中会显示出一个框出来的,没有的话你点击下UIPanel那个脚本就会显示出来了。)


4、下面我们在Scroll View下创建一个Sprite,Atlas,Sprite和type的选择如图。当然,这个大家喜欢什么图都可以加什么图。没严格要求。

5、我们给这个Sprite添加Box Collider和UIDragScrollView脚本。场景中选择Sprite。右击---Attach--Box Collider。。。右击--Attach--UIDragScrollView。。。(注意一定要先添加Box Collider),然后把我们的Scroll View赋予给UIDragScrollView。

大家运行之后拖动NGUI Sprite就可以看到效果了。。。我们看多复制几个Sprite,移动下位置。再运行看看效果更明显。如下图。。。。