Unity3d NGUI 拉伸适配各种手机分辨率
在开放Android游戏时,开放人员再最后阶段(有时一项目开始)都得考虑适配不同分辨率的手机。要不你所开放的游戏只能适合一个分辨率的手机,那公司就可能不要你了。开个玩笑了!!!!!
上一篇:
Unity3d 手机屏幕自动适配
我提到手机自动适配的一个方法中:postion和Scale,“比例”概念适配手机。原始资源是480*800
经过实际项目考验,个人感觉:
1,UICamera是自动适配分辨率,UI上也是拉伸、放大UI元素。有些分辨率如:720*1280,拉伸的比较大。适配效果不是很“完美”。
2,在游戏运行当中,有时得 Instantiate 一个新的GameObject,就又得考虑适配问题,有时还必须得放入 UIPanel下。对开放效率而言,不是一个好的选择;
综合上述所示,不考虑完美适配手机的前提条件下:
可优化为:
1, UIRoot.Automatic 为false,既UICamera不自动适配分辨率。在Instantiate等情况不考虑适配问题。
2,在进行拉伸、放大来适配不同分辨率的手机。思路:原始资源是 480*800,UICamera的长宽比是 480f/800f,那么我可以让UICamera长宽比在不同的分辨率的手机中都为
480f/800f。就可以适配了
写个c#脚本,最好在Awake中,对UICamera,进行长宽比;
public Camera nguiCamera;
void Awake(){
if(nguiCamera!=null){
//Debug.Log("dddffff "+nguiCamera.aspect);
nguiCamera.aspect=480f/800f;
//Debug.Log("dddffff dddfffff "+nguiCamera.aspect+" "+Screen.width+" "+Screen.height);
}
}
效果图如下:
320*480