EZGUI之UIScrollList
EZGUI之UIScrollList
最近项目比较紧,也好几天没写了。今天就写下ScrollList(滚动面板),类似手机和平板上可以用手滑动的那种,这个控件的使用方法在官方网站上打不开,算了还是自己摸索吧,这个控件在EZGUi里面算是稍微复杂点的(不过本身也就没几个^-^)。
按照惯例,首先还是创建一个空的GameObject,将Scroll List脚本关联上去,如下
我这个版本比较老,可能新版的功能应该会有所增加。Scrolllist可以设置滑动类型(水平或垂直),滑动的方向,可视区域等一些设置的参数。另外它也可以搭配slider(滚动条)一起使用,后面会简单说下这个控件的使用。
第二步,控件参数设置好之后,就可以拿来使用了。新创建一个脚本ScrollListManager,复制以下代码
public class ScrollScript : MonoBehaviour {
public UIScrollList list;
public UIListItem listItem;
public int count;
// Use this for initialization
void Start () {
// Add list items:
for(int i=0; i<count; ++i)
{
UIListItem item = GameObject.Instantiate(listItem) as UIListItem;
if(item)
list.AddItem(item);
}
}
往ScrollList控件里面增加item有很多方法,上面只是其中之一,如果只是静态的添加item,可以在里面添加,想添加多少都可以。
当然也可以在里面添加,但是这两种方法还是有些不同的,Scene Items添加在Prefab Items的前面,就是说Scroll List先加Scene列表后加Prefab列表,另外从名字也可以看到差别,Scene列表是场景中的item(类似实例化的Prefab),Prefab我就不用说了。具体的实现细节也可以参阅UIScrollList.cs
第三步,创建一个slider,slider跟正常的滚动还是有点差别,没有上下两个按钮。现在想想,EZGUI功能真是非常的有限啊。不过有兴趣的可以扩展扩展,我觉得也不是什么非常困难的事情。Slider包含一个滑条,一个背景,不过背景是分成两部分的(滑过的区域和未滑过的区域),设置如下:
Slider里element也可以设置Layer,类似button,不过这个很少用到。
不过slider好像没有可以设置滑动类型的设置,水平或垂直,默认是水平的,不过可以绕着Z轴旋转一下也可以达到效果。最后将ScrollListManager中slider设置为此slider就可以了。
最后再创建一个ListItem,其实ListItem就是一个button,它继承了button,所以它拥有button的所有功能,不过它是专门放在ScrollList里面的,我大致看了下UIListItem.cs,并没有增加什么额外的功能。最后将ScrollListManager中的ListItem设置为此。
这样一个简单的ScrollList功能就实现了。当然ScrollList也可以放置UIListItemContainer,这个是容器中包含多个ListItem,其实用法也差不多,大同小异吧。
好吧,ScrollList控件就说这么多吧,欢迎大家交流。

浙公网安备 33010602011771号