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

 

posted @ 2013-05-27 17:06  韦斯利yx  阅读(2384)  评论(0编辑  收藏  举报