代码改变世界

NGUI学习笔记(二):基础笔记

2015-06-20 17:32  阿诚de窝  阅读(548)  评论(0编辑  收藏  举报

精灵(Sprite)、图集(Atlas)和贴图(Texture)的区别

图集:由多张小图拼合而成的一张大图,其好处是降低DrawCall的次数、减少载入内存的次数和方便管理同一类型的小图。一般图集都会携带一个配置文件用来记录每张小图的名称和区域信息等。

精灵:图集上的一个小图即为一个精灵。

贴图:比如游戏中的背景图等较大的图片,如果不作为图集的一部分打包,而是直接使用,那么可以称为一个贴图。

 

标签(Label)和字体(Font)

标签:用来显示文本的控件。

字体:NGUI中存在两种字体。

静态字体:有美术提供美术字或将字体文件(.ttf)中的部分字体抽取出来,然后打包为一个图集,直接使用精灵进行显示的方式。

动态字体:直接导入字体文件(.ttf),只要字体文件中存在的文字都能显示出来。

 

UIRoot的3种缩放方式

Fiexible/PixelPerfect:像素大小始终不变,即一个100*100的图片在任何的分辨率下都占用100*100的像素。一般PC上会使用这种方式,因为PC端分辨率差异并不大。

Constrained/FixedSize:不关心图片的实际像素大小,而只关心ManualHeight值,这个值如果是1000,那么100高度的图片在任何分辨率下都只占用屏幕1/10的尺寸。一般移动端会使用这种方式,因为移动端分辨率差异较大。

ConstrainedOnMobiles/ FixedSizeOnMobiles:在PC下采用Fiexible/PixelPerfect,在移动端下采用Constrained/FixedSize。

 

组件的Depth属性

每个控件都有Depth属性,Depth表示控件的渲染顺序,数值高的控件会遮住数值低的控件。

而Plane的深度优先于所有其它控件的深度。位于两个Plane中不同的控件,无论控件的深度是多少,一定是深度高的Plane中的所有控件遮住深度低的Plane中的所有控件。

同样的,每个摄像机也有深度,摄像机的深度控制该摄像机看到的画面的渲染顺序。

总结:摄像机深度>Plane深度>控件深度

 

UICamera的功能

让带有该组件的摄像机渲染出的物件能够接收NGUI的事件。

 

UICamera的EventMask属性

EventMask和CullingMask类似,其主要目的是区分出接收事件的层,如果UI的层改变了需要修改这个属性,否则会出现无法接收到事件的情况。