NGUI学习笔记2-窗口及子类

来源:互联网 发布:樱井知香为什么喷泉 编辑:程序博客网 时间:2024/06/05 17:51

    NGUI 窗口及子类总共有sprite,label,texture,,2d sprite,widget几类。这是NGUI的基础显示单元,通过和不同的脚本结合,从而产生强大的效果。

   首先我们看widget。这个widget本质上是个容器,但单独把这个放场景基本是不显示的。所以他的最大作用就是分类管理。但是考虑到所有子类都从widget派生,实质上所有子类都有容器的功能。比如,在设计UI时,可以考虑将底层的背景作为父控件,其上的功能控件作为子控件,通过操作父控件,可以实现对子控件的一并控制。从这个角度上讲,似乎没有必要单独引入一个不可见的widget到UI层。除此之外,widget也定义了控件的一些基础属性。alpha 透明度;depth 渲染的深度,越大越上面;width height。等等。这些脚本里面都是public接口,意味着也可以写脚本来操作这些属性。PIVOT定义控件原点位置。Anchors定义锚点。

   sprite:将设定图集中的某个sprite显示出来。不同的选项有不同的效果。比如type选tile就是大家都比较熟悉的平铺。color 可以设定显示的颜色。这里有个简单的操作如果默认他的选项,直接设颜色的话,可以得到一个大致同色的色条。

   Label:标签。这个类集中处理与字体相关的基础功能。可以通过font设置字体,还可以设置材质(虽然还没有尝试,不过这大概意味着可以通过对应材质的shader来实现特殊效果)。Text属性代表显示的字体内容。另外如果大家有看NGUI自带的示例功能的话,会发现可以在文本中写入[ff0000]...[-]之类的东西来控制字体的颜色,但是这里有个坑就是。。最终显示的颜色是你设定的这个颜色加上color tint里颜色的总值。所以。。如果color tint已经设为黑色了 那么无论怎么设颜色,最终都只会显示黑色。另外BBCODE选项是这个功能的开关。

   texture:这个和sprite的最大区别是 这个可以设材质、shader。当然最简单的运用就是直接拖一张背景图到Textrue。。。至于更高级的效果,大家写shader去吧。不过如果同时设了材质和shader,那不是可能会冲突吗?看源码,如果直接取shader属性,会优先返回材质的shader。而设置shader值时,加入材质已经被赋值,会直接将材质重置为NULL。所以这2个应该本质上是互斥的选项。

   2d sprite:从源码上看,这个2d sprite指的unity自带的sprite。所以这个是使用unity 2d sprite来作为显示的控件。与ngui的sprite相比,显然可以在显示上获得更多的灵活性。


0 0
原创粉丝点击