[转] 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;
}