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;
}
相關文章
相關標籤/搜索