Unity3d+NGUI多分辨率适配

来源:互联网 发布:如何设计淘宝海报 编辑:程序博客网 时间:2024/06/05 12:40

1. NGUI中多分辨率显示原理。

使用NGUI时,我们一般会建立一个专门渲染UI的Camera,把Camera中Projection属性设置为Orthographic,把Size属性设置为1,再通过设置UIRoot的manualHeight变量决定默认高度。manualHeight变量决定着UIRoot的Scale大小。规则是:Scale分量大小 =  Size*2/manualHeight。这是NGUI为了保证单位1 pixel = 1 unit ratio。

2. manualHeight大小的影响

manualHeight变量决定游戏是按照设备的高度适配。我们可以这样理解:把一个设备的屏幕从上到下分为manualHeight个单位来显示图像。左右显示的范围由屏幕的宽高比决定。如果我们把默认高度设置为640。

左右显示的范围计算方法如下表

分辨率宽高比manualHeight高度水平显示范围960x6401.5640640x1.5=9601136x6401.775640640x1.775=11361024x7681.333640640x1.333=853


如果我们显示一个全屏的背景图,同时保证这个图片到三个表格分辨率设备上不会有显示不全的问题。这个背景图尺寸宽度至少是1136像素。这样在1136设备上完美显示背景图。在960设备上显示部分背景。图在三个设备上下表现是保持一致的。如果我们的制作的UI是一个窗口,这个窗口的大小不能大于853像素,如果大于这个像素,UI到1024x768分辨率的设备上会有超过屏幕显示范围的问题。

3. 按屏幕百分比显示问题

目前主流手机的宽高比在1.3~1.8宽高比之间。如果按照设备的高度适配,水平显示范围是853~1152。

我们在设计UI时,如果UI的宽度小于853,那么在多应该设备上没什么问题。

但是有时我们需求UI在不同屏幕上都要全屏显示,或是按照屏幕宽度的百分比显示。这时我们必须要写一些代码实现用屏幕百分比来设置UI大小,屏幕百分比设置UI的位置,相对某个UI位置设置新UI的位置等,这些实现都比较容易。


0 0
原创粉丝点击