NGUI -- UIRoot

注意:本文翻译时NGUI版本已经更新到3.0.7

原文地址:http://www.tasharen.com/forum/index.php?PHPSESSID=95e796b8f47f1380d66f5486e28f9acc&topic=6710

总览

UIRoot总是位于NGUI UI层级的底部(或者顶部,这取决于你怎么看!)

它负责处理UI的缩放来使得它们更容易管理。由于小挂件(widget)的坐标通常以像素定义,一个800*400的挂件将是800*400单位,这好像有点大。。。UIRoot通过取屏幕高度的倒数来缩放它自身,这让挂件变小并更容易工作。

NGUI -- UIRoot_第1张图片

UIRoot有一些可供使用的缩放类型。最常见的是PixelPerfect。这个模式下,你的UI将以像素为单位,一个300*200的挂件将在屏幕上占据300*200像素。这也意味着你的UI在一些低分辨率的设备上看起来会比较大。而你的UI在一些高分辨率设备上看起来会比较小。这个设置的好处是你的UI将尽可能贴近美术的设计。


FixedSize是精确的对立面。当UIRoot设置了这个模式,你的屏幕不管多大,将一直保留相同的大小。这意味着如果300*200的挂件如果在你1920×1080分辨率的屏幕上占据25%的位置,当你分辨率降到1280×720的时候,它依然占据25%。如果你不关心你的UI将不同屏幕看起来是怎样的,而你也不管UI是否贴近美术设计,那你就选择这个选项。当选择这个选项的时候,不要忘记手动设置高度。


FixedSizeOnMobile设置混合了前面的两个。它使得这个设置在构建桌面版本的时候是“PixelPerfect”,而在移动平台却是“FixedSize”。


如果你没有选择FixedSize选项,不要忘记设置Minimum和Maximum Height的值。这些值用于让你的虚拟屏幕大小在一个合理的范围内。例如假设你的UI设置了PixelPerfect模式,而Minimum Height设置为720,那么当一些玩家尝试在800×600的分辨率上运行你的应用的时候,UI还是按720那样运行。


Pro-Tip

UIRoot通常使用2/ScreenHeight缩放它自身,当ScreenHeight是真实屏幕的高度时(在PixelPerfect模式下),或者是你手动设置的高度(在FixedSize模式下)。这样做能让Camera绘制UI的时候保留Orthographic Size的值为1。

如果你不需要UIRoot的自动缩放功能,你可以去掉这整个组件。


类文档

http://tasharen.com/ngui/docs/class_u_i_root.html


如果你有一些和这个组件相关的问题,也可以在下面讨论。

你可能感兴趣的:(unity3d,屏幕,分辨率,NGUI,UIRoot)