zoukankan      html  css  js  c++  java
  • [转] NGUI自适应

    很多做移动终端开发的童鞋都可能遇到一个问题,就是如何自适应
    其实NGUI已经能帮我们实现,下面就告诉大家怎么整这个自适应。
    1,create a new ui
    2,uiroot下添加uipanel(script)
    3,camera的size设置为美术给你的图的size(比如美术给你的是960*640,size=960),
    4,panel添加uistretch(script),其中的style设置为both,并将relative size的x和y都设为960(同上的道理,明白?)
    5,再在panel下add一个sprite(最好是960*640)的背景图,其中transform的s一定注意要是1,不能再放大了。
    以上就ok了
    注明下:
    uistretch的缩放NGUI提供了5种,

    public enum Style
        {
            None,
            Horizontal,
            Vertical,
            Both,
            BasedOnHeight,
            BasedOnWidth,
        }
    我自己加了一种BasedOnWidth,其实代码很简单,如下:

    else if(style == Style.BasedOnWidth)
                {
                    localScale.x = relativeSize.x * screenWidth;
                    localScale.y = relativeSize.y * screenWidth;
                    localScale.z = localScale.x;
                }
    是不是很简单?
    大功告成,希望对大家有帮助!

    补充下,还有种方法比上面要好点。
    camera的size设置为1
    uistretch的relative的size设置为x=1/960f,y=1/960f
    这样你的资源的就不用缩放了

    自己实践补充

    if (style == Style.BasedOnHeight)
                {

                     //****** NGUI默认处理方式 **********
                    //localScale.x = relativeSize.x * rectHeight;
                    //localScale.y = relativeSize.y * rectHeight;

                      //****** 自己稍做修改结果  发现适用范围更广泛**********
                    localScale.x = relativeSize.x * rectHeight-relativeSize.x * rectHeight*0.25f;
                    localScale.y = relativeSize.y * rectHeight-relativeSize.x * rectHeight*0.25f;
                }

    转载地址:http://game.ceeger.com/forum/read.php?tid=5314

  • 相关阅读:
    动态规划法(八)最大子数组问题(maximum subarray problem)
    动态规划法(九)想要更多例子?
    动态规划法(五)钢条切割问题(rod cutting problem)
    MySql排序函数
    Mysql 分组函数查询
    MySql单行函数
    MySql常见的函数
    MySql常见的条件查询
    MySql的一些基础查询
    MySql资料总全
  • 原文地址:https://www.cnblogs.com/U-tansuo/p/NGUI.html
Copyright © 2011-2022 走看看