關於NGUI的屏幕自適應,大體思路可以這樣做:
比如要實現在屏幕的左側做一個長條背景:
可以看出這部分圖片是和屏幕高度一致的。那么只要得到“制作時的屏幕高度”以及“當前運行屏幕高度”,求兩個值的比值,然后當前UI的大小乘上這個比值即可得到UI適應后的大小。先完成這一步:
1.新建一個widget。因為此UI要一直靠在屏幕左邊,所以它的pivot設置為左邊。Size設置成當前(制作時)的屏幕大小,比如1280X800.
2.新建Sprite且為widget的子物體。擺好位置。
3.建立自適應腳本並掛在widget上,就簡單幾句話,所以直接貼上了:
float w=1280, h=800;//設置默認屏幕大小(制作時的屏幕大小)
void Start ()
{
this.transform.localScale=new Vector3(Screen.height / h,Screen.height/ h,1);
}
點擊運行發現大小已經適應了屏幕,但是位置明顯跑偏了..如了個圖~:
這時應該能想到問題所在了,UI的位置可以利用“當前屏幕寬度/2”求得
即: this.transform.localPosition = new Vector3(-Screen.width/2,0,0);
大功告成~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
同理可得 :向右自適應,向上自適應,向下自適應的做法。(無非也是找出來高度的比值或寬度的比值)