NGUI:UIPanel

UIPanel负责创建实际的集合图形。你不需要手动的添加UIPanel-一旦你创建一个控件,它会自动被添加。如果你想将你的UI渲染拆分到不同的Draw Call中,你可以手动创建你自己的UIPanel,例如你要创建一个分屏的游戏,每个屏用一个摄像机进行渲染,这种秦光下你就需要2个UIPanel来避免控件互相重叠。

参数

Panel Tool 决定这一个Panel是否会显示在Panel Tool中。那些动态创建的临时Panel可以将这个选项关掉,比如那些HUD血条,滚动战斗文字等。

Normals 标志让你选择UI的几何图形是否会受到法线和切线的影响。如果你的UI会受光照影响,那么这个选项需要被选上。

Depth Pass 让你添加一个额外的之渲染深度的Draw Call。打开这个选项可以节省部分填充率,因为在你的不透明的控件后面的物体都不会再被渲染。

-----------------

Widgets 告诉你这个Panel渲染了多少个控件

Draw Calls 告诉你这个Panel会消耗多少个Draw Call。这个数值越低,效率越高

Debug Info 让你选择显示哪种调试信息

Clipping 让你选择是否需要裁切功能。默认情况下不会有裁切。裁切是使用Shader来实现的,当选择了任意一种不是None的裁切模式之后,NGUI会尝试自动的获取一个裁切版本的shader,并更新材质。

如果选择了裁切模式,你可以选择裁切区域的中心点和大小,单位是像素。如果不修改这些参数的默认值,那么会按照整个屏幕的大小来裁切,这个跟没有裁切是一样的效果。

如果裁切模式选择了SoftAlpha,你可以改变Softness参数,这个参数决定了被裁切内容淡出的边缘宽度,这个在整个裁切区域的四个边都是相等的

Material 是一个只读的值。你可能会看到1个以上的material,每个material会消耗一个Draw Call。为了方便,每个Draw Call的面数也显示在这里

Tips

1. 在默认情况下,如果UIPanel不存在,它会在最根层的控件中自动创建。因此,最好将你的UI整理到一个通用的父节点。

2. 你可以通过将UIPanel使用的texture和font整理到同一个atlas来减少UIPanel使用的material数量

3. 你可以放心的删除那些没有使用的或者显示了0个widgets的UIPanel

4. 如果你删除了一个还管理了其他widgets的UIPanel,这些widgets会消失。点击Play或者disable掉这些widgets再enable它们,就可以重新显示(实际上是又重新添加了一个新的UIPanel)

5. 只要没有东西发生改变,已经创建好的几何图形不会重建。意思就是如果你的UI一直保持不动,那么这些几何图形不会每一帧都update,他们会一直被重用,这样提高了一些效率。