原地址:http://blog.sina.com.cn/s/blog_697b1b8c0101g2r4.html
大家使用unity,一定有看中其跨平台的强大功能,因此也难免会遇到不同屏幕分辨率适配的问题。
先说说UIRoot.在新版本的ngui中加入一个选择菜单,分别有PixelPerfect,FixedSize,FixedSizeOnMobiles。网上有不少资料说明这个,不过我看了好几遍都没怎么懂。只到做了几个demo才明白。
1.PixelPerfect,顾名思义,就是像素点完美化,怎么个说法呢,我所理解的就是保持所有的大小尺寸为最初。如一个gameobject原localScale为(1024,768,1)。那用了PixelPerfect,他的localScale还是相对于屏幕那么大,这样,如果将其用在ipad3/4/air上,就会变成只有原来一半了。
2.FixedSize和FixedSizeOnMobiles其实差不多,官方说是后者对前者在移动平台做了优化。这两个参数是主要可用来做屏幕适配的,说到这,就必须得看看其他三个参数,Manual Height,Minimum Height,Maximum Height。在此模式下,最终的屏幕缩放是要根据相应设备的宽高比来决定。如ipad2和ipad3。他们的分辨率比值一样,因此各位完全不用费心适配问题。至少iphone和ipad的适配,则需要通过设备宽高比,在代码上动态调这三个值。
另外,许多应用都会用到一些图片翻阅的功能,使用UIDraggablePanel可实现简单的功能。其配置分为三层。第一层一个添加了UIDraggablePanel的GameObject。第二层一个有uigrid的GameObject(或uitable,日后介绍此脚本的用法)。第三层才是一些gameobject,注意这些GameObject,必须要有碰撞体和UIDragPanelContents的脚本。
今天做了个Demo专为研究ipad2和ipad3的问题,另外,并分享给大家。
本例平台:
UNITY 4.2,NGUI 2.6.4,及一系列图片
1.首先建一个2d的uiroot。设备参数如下:
2.图片建成一系列material。这个就不说了。如果不懂,可以去ngui官网查阅。
3.建一个Gameobject,贴上DraggablePanel。并为其添加相关子uigrid。
4.添加系列Element到subgrid里,记得添加UIDragPanelContents。
5.调整下draggable panel的一些参数。如下:
到此,先在unity上跑一下,没问题。再放到ipad2,ipad3上运行,效果一样,大功告成!
声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。