今天讲一下Unity3d中NGUI的Scroll View的制作问题。

[size=13.6842107772827px]此为重点:

[size=13.6842107772827px]首先建立一个sprite作为背景,然后建立一个Scroll View,

[size=13.6842107772827px]


[size=13.6842107772827px]然后在Scroll View里建立一个Grid


[size=13.6842107772827px]

[size=13.6842107772827px]看一下Grid的属性,看到Arrangement是表示排列方式,Sorting也是排序方式,当随意拖动里面的cell 的时候会以你选的方式排序,看Pivot这个是指轴的位置,现在是在中心看图Scenc里面的坐标就知道了。然后看HIde Inactive这个属性目前我所了解的实现是拖动里面的cell后可以随便移动你所拖动的cell到任何位置,若果勾选了上面或者下面的那两个选项就不能顺利实行拖动效果了(目前所发现的是这样)。

[size=13.6842107772827px]

[size=13.6842107772827px]然后在Grid下面建立一些sprite,其实这就是上面说的cell,为了方便就做成perfeb复制了。命名为2345如上图。

[size=13.6842107772827px]把Scroll View的移动方向设置为纵向如下图,然后找一个Scroll Bar 拖到如图所示的右下角的Vertical里面,。。现在运行滑动Scroll Bar就可以看到效果了。

[size=13.6842107772827px]


[size=13.6842107772827px]但是这不是重点,我们要做的是拖动Grid里面的东西来实现滑动效果。这样我们给2345都加box collider然后都添加两个脚本:Drag Item和Drag Scroll view如下图:

[size=13.6842107772827px]然后把Scroll view拖到如图的位置(其实不拖也可以,运行的时候会自己进去),注意Drag Item的Restriction属性如下图红色横线,这里来设定2345这些cel每一个个体l的拖动方向,我的设定是横向的。但是Grid这个整体的拖动方向还是纵向的,就和SCroll bar的效果是一样的。

[size=13.6842107772827px]

[size=13.6842107772827px]现在运行一下发现不用Scroll bar 直接纵向拖动2345任何一个都会整体移动,横向拖动任何一个所选的对象会移动。这样就做完了。。。


[size=13.6842107772827px]


[size=13.6842107772827px]Scroll view到此就做完 了,我们要加点心东西也可以,让cell可以放到一个固定的位置不动。新建一个Sprite命名为ww然后加box collider,然后加个容器脚本:如下图 UIDrag Drop container脚本,里面的target就是你的所放到的地方。如下图这样运行一下


[size=13.6842107772827px]

[size=13.6842107772827px]运行之后的结果看到了 吧,可以把东西拖到容器上。

[size=13.6842107772827px]


[size=13.6842107772827px]如果把target的位置到了别的地方也是一样的。下面来举个例子:

[size=13.6842107772827px]新建一个sprite命名为bg然后建立Scroll View2和Grid2给bg添加box collider和容器脚本把target指定给Grid2然后就好了。


[size=13.6842107772827px]


[size=13.6842107772827px]如下图看运行结果:这样就可以把cell从一个Scroll view拖到另个Scroll view了。那么要想拖动回来也是用相同 的方法。结束了!!!!好累。。。


[size=13.6842107772827px]