NGUI 组件 UIRect


UIRect:是常用控件的父类,他主要控制Anchors锚点

Type:有三种类型,None,Unified 和 Advanced,advanced是全集,但一般用Unified 就够了。advanced会分别为四条边指定不同的停靠对象。

Left,Right,Bottom和Top:这四个是指当前组件的四条边,UI Root 是当前组件停靠的参照对象。除了参照对象以外,还有具体参照的边,主要有上下左右中五个参照对象。

总结:UIRect作为控件的父类,它主要的作用就是控制控件的大小和位置,这里的位置是相对参考组件的位置。UIRect用来12个Anchors点来描述这些信息,其中8个点用来锁定控件的大小和坐标,另外4个点用来描述控件跟参照控件的相对位置关系。为什么有了8个点,还有4个点呢?我觉得这是用来做跟随用的,如果参照组件的位置改变,当前组件可能也会跟变。

UIPanel:

Alpha:调整当前panel里面所有组件的透明度。

Depth:深度值,需要注意的是不同的panel的深度值不要一样,这个设计到渲染的排序。

Clipping:选择none就是不裁剪。选择soft clip并指定panel的大小就可以做出Scroll View的效果,如果是这样需要勾选cull。选择constrain but dont clip 表示会遮盖范围外的组件但是不会被裁剪。一般选soft clip吧。

Render Q:可以控制当前panel的渲染队列序号,来改变他被渲染的顺序,这个值为3000+。

Normals:渲染时可以渲染法线。

Cull:对被遮挡的三角形进行剔除,如果被遮挡的三角形很多,那么这是划算的,如果不多它本身也会存在性能损耗,这也是为什么有constrain but dont clip 选项的原因。

Static:勾选它代表容器内所有的控件都不会被移动,能提升效率。

panel tool:是否在panel tool里面显示。

show draw calls:显示当前panel调用了多少次call的详细信息。 

总结:NGUI对UIPanel的定位是一个渲染器而并非一个容器,这意味着不应该滥用这个组件,而是在必要的时候使用它,由于它仅仅涉及到渲染相关的东西,所以他也应该只是用来作为容器,而不是其他。

 UIWidget:

alpha:设置透明值

depth:设置深度值

dimensions:设置高度和宽度

UILabel:

Font:可以使用的字体有两种系统字体和Bitmap字体,系统字体可以调整大小,一般我们会选择一种系统字体,然后其他的都用Bitmap字体。

material:相当于为当前label里的字体指定一种渲染材质。

text:指定文本内容。

Overflow:指定文本超出后处理的策略,

1.Shrink Content:与Keep Crisp设置一起来控制Dynamic字体,使字体的字号变小而不是简单的缩放。这样不管label是否被缩放都能保持清晰。

2.Clamp Content:剔除多余的文本。

3.Resize Freely:根据输入的文本内容自动调整dimension,不需要手动调整。

4.Resize Height:保持宽度不变,必要时增加高度。

Alignment:文本对齐方式,左中右。

gradient:通过设置顶部的颜色和底部的颜色来进行控制字体颜色的渐变。

Effect:可以为字体设置阴影或者下划线之类的效果,但是这种效果会对性能有损耗,不推荐。

Spacing:调整字体的间距。

Max Lines:文本最大行数,0为不限制。

color tint:设置字体颜色的色调。

总结:整个UILabel都是围绕字体展开,理论上来说它不涉及字体之外的东西,这样也挺好的。理论上会选用一种字体,然后对字体做出一些改变增加一些效果,然后对于一些特殊的字体,使用Bitmap字体。

 UI2DSprite、UISprite、UITexture: 

 这三种组件都是用来绘制图片的, UI2DSprite是用来兼容U3D自带的 Sprite的,一般用UISprite、UITexture即可。UISprite、UITexture有什么区别呢?UISprite使用的图片来源是把多个图片打包到一张大图上来使用,由于打包到一张大图,所以加载的时候只需要DrawCall一张大图就行了。而UITexture就是普通的绘制图片,为了绘制UITexture每次都会调用一次DrawCall,除非图片相同。

Type:这三种组件都有的属性,如果说这几个组件的不同表现在绘制源的不同的话,Type类型的不同就表现在绘制的方式上。众所周知,组件的大小和图片的大小是两个大小,所有要把图片绘制在组件上有多种策略。

public enum Type
	{
		Simple,
		Sliced,
		Tiled,
		Filled,
		Advanced,
	}

 Simple:

猜你喜欢

转载自lengbingteng.iteye.com/blog/2094181