zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Attributes.Add用途与用法
    Reapter控件中更换Td背景色
    SQL SERVER查询时间条件式写法
    C# Cache何时使用及使用方法
    C#中Cache用法
    用sql语句将两个时间相减,得到时间距的DateDiff()函数
    HTML5 带进度条的异步文件上传原理
    Node环境Grunt开发流
    HTML5的Web SQL Databases(html5 本地数据库)API
    移动端范围拖动选择效果
  • 原文地址:https://www.cnblogs.com/kuangwu/p/3101918.html
Copyright © 2011-2022 走看看