NGUI控件说明——UIRoot
2015-05-10 17:40
197 查看
NGUI版本:3.0.x
UIRoot总是放在NGUI UI层级的最上层。
它用来使UI的缩放变得更容易。widget通常使用的是以像素为单位的坐标,但是一个800*400(dimensions的值)的widget会占用800*400个单位(Unity中的单位),这相当大。UIRoot通过屏幕高度的反比来进行缩放,因此widgets都会很小,并且操作起来更容易。
UIRoot有几种缩放方式。最常见的就是PixelPerfect。这种方式下,你的UI一直都是以像素为基础,一个300*200的widget在屏幕上永远占用300*200像素。这就意味着,你的UI在低分辨率的机器上会显得非常大,在高分辨率的机器上就会显得很小。这个设置就是一直保持你的UI清晰。
FixedSize是一个和它功能正好相反的设置。当UIRoot用了这个选项,你的屏幕永远都会保持NGUI所关心的尺寸,不管你的实际屏幕是多大。就是说一个300*200的widget占用了你1920*1080的25%的屏幕,那么当分辨率降低到1280*720的时候,它同样占用25%的屏幕。如果你不介意你的UI看起来像是不同的尺寸,也不关心是否清晰(就是可能一个小的UI被拉伸很大),那么选择这个选项。选择它的时候,不要忘记设置Manual Height。
FixedSizeOnMobile是前两种的组合。选择这个选项后,会在pc或者mac等桌面设备上用“PixelPerfect”,在移动设备上用“FixedSize”。
如果你没有选择Fixed Size选项,那就要设置Minimum和Maximum Height的值。这些值让你的虚拟屏幕看起来在合理范围。比如选择了Pixel Perfect方式,Minimum Height设置为720,那么当有玩家把你的程序运行在800*600(高度是600,小于Minimun Height)的设备上时,你UI的行为就和设置了“Fixed Size”模式、Manual Height值设为720的时候一样。
如果你不需要UIRoot的自动缩放功能,直接去掉这个组件。
#cyg {
font: 14px "微软雅黑";
line-height: 1.6em;
}
#cyg h2 {
margin: 1.33em 0 1em 0;
font-size: 16px;
}
#cyg h3 {
margin: 1.33em 0 1em 0;
font-size: 14px;
}
#cyg p {
margin: 1em 0;
}
#cyg_code {
max-height: 320px;
overflow-y: hidden;
margin: 1em 0;
padding-left: 40px;
border: 2px solid rgb(200, 200, 200);
background: rgb(231, 229, 220);
font: 12px Courier,Arial,sans-serif;
list-style: decimal;
}
#cyg_code li {
height: 16px;
line-height: 16px;
padding: 0 1em;
border-left: 3px solid rgb(108, 226, 108);
background: rgb(240, 240, 240);
white-space: pre;
}
#cyg_code em {
font-style: normal;
color: rgb(117, 113, 94);
}
#cyg_code strong {
font-weight: normal;
color: rgb(153, 129, 255);
}
#cyg_code b {
font-weight: normal;
color: rgb(166, 226, 46);
}
#cyg_code var {
color: rgb(230, 191, 77);
UIRoot总是放在NGUI UI层级的最上层。
它用来使UI的缩放变得更容易。widget通常使用的是以像素为单位的坐标,但是一个800*400(dimensions的值)的widget会占用800*400个单位(Unity中的单位),这相当大。UIRoot通过屏幕高度的反比来进行缩放,因此widgets都会很小,并且操作起来更容易。
UIRoot有几种缩放方式。最常见的就是PixelPerfect。这种方式下,你的UI一直都是以像素为基础,一个300*200的widget在屏幕上永远占用300*200像素。这就意味着,你的UI在低分辨率的机器上会显得非常大,在高分辨率的机器上就会显得很小。这个设置就是一直保持你的UI清晰。
FixedSize是一个和它功能正好相反的设置。当UIRoot用了这个选项,你的屏幕永远都会保持NGUI所关心的尺寸,不管你的实际屏幕是多大。就是说一个300*200的widget占用了你1920*1080的25%的屏幕,那么当分辨率降低到1280*720的时候,它同样占用25%的屏幕。如果你不介意你的UI看起来像是不同的尺寸,也不关心是否清晰(就是可能一个小的UI被拉伸很大),那么选择这个选项。选择它的时候,不要忘记设置Manual Height。
FixedSizeOnMobile是前两种的组合。选择这个选项后,会在pc或者mac等桌面设备上用“PixelPerfect”,在移动设备上用“FixedSize”。
如果你没有选择Fixed Size选项,那就要设置Minimum和Maximum Height的值。这些值让你的虚拟屏幕看起来在合理范围。比如选择了Pixel Perfect方式,Minimum Height设置为720,那么当有玩家把你的程序运行在800*600(高度是600,小于Minimun Height)的设备上时,你UI的行为就和设置了“Fixed Size”模式、Manual Height值设为720的时候一样。
小贴士
UIRoot以2/ScreenHeight的值进行缩放。ScreenHeight可能是实际的屏幕高度(Pixel Perfect),也可能是manual height(Fixed Size)。这样做的目的是使渲染UI的camera的Orthographic Size的值一直使用1。如果你不需要UIRoot的自动缩放功能,直接去掉这个组件。
类文档
http://tasharen.com/ngui/docs/class_u_i_root.html#cyg {
font: 14px "微软雅黑";
line-height: 1.6em;
}
#cyg h2 {
margin: 1.33em 0 1em 0;
font-size: 16px;
}
#cyg h3 {
margin: 1.33em 0 1em 0;
font-size: 14px;
}
#cyg p {
margin: 1em 0;
}
#cyg_code {
max-height: 320px;
overflow-y: hidden;
margin: 1em 0;
padding-left: 40px;
border: 2px solid rgb(200, 200, 200);
background: rgb(231, 229, 220);
font: 12px Courier,Arial,sans-serif;
list-style: decimal;
}
#cyg_code li {
height: 16px;
line-height: 16px;
padding: 0 1em;
border-left: 3px solid rgb(108, 226, 108);
background: rgb(240, 240, 240);
white-space: pre;
}
#cyg_code em {
font-style: normal;
color: rgb(117, 113, 94);
}
#cyg_code strong {
font-weight: normal;
color: rgb(153, 129, 255);
}
#cyg_code b {
font-weight: normal;
color: rgb(166, 226, 46);
}
#cyg_code var {
color: rgb(230, 191, 77);
相关文章推荐
- NGUI控件说明(中文) UIRoot
- NGUI控件说明(中文) UIToggle
- NGUI控件说明(中文) UIScrollBar
- NGUI控件说明(中文) UIStretch
- NGUI控件说明(中文) Tweens
- NGUI控件说明——UIButton
- [NGUI插件] NGUI控件说明(中文) UICamera
- NGUI控件说明——UIKeyBinding
- NGUI控件说明(中文) UILabel
- NGUI控件说明——UITexture
- NGUI控件说明(中文) UIToggle
- (转)NGUI控件说明(中文) UISlider
- NGUI控件说明(中文) UIGrid
- NGUI控件说明——UIPopupList
- NGUI控件说明(中文) UIAnchor
- NGUI控件说明——UISprite
- NGUI控件说明(中文) UITexture
- NGUI控件说明——UIPanel
- NGUI控件说明——UIWidget
- NGUI控件说明(中文) UIKeyBinding