ngui可以比較方便的實現螢幕自適應,但是它的官方教程裡面針對這個問題沒有詳細的教程,所以可能在實現的時候會走比較多的彎路。以下是我在開發過程中找到的乙個比較方便的實現方法。
1. uianchor
這個是用來確定控制項在螢幕中的位置,另外有一篇教程專門講它的功能,所有不會再贅述
2. uistretch
這個是用來做縮放的元件。老版本的ngui是整合在uianchor上的。新版本的uistretch提供了4種縮放方式:
horizontal:只縮放水平方向
vertical:只縮放垂直方向
bose:縮放兩個方向
basedonheight
:基於高度等比縮放
然後基於這些我自己實現了乙個
basedonwidth
:基於寬度等比縮放
**如下:
else if(style == style.basedonwidth)
這段**新增在update方法裡面。為了能將uistretch掛在uipanel上面不出問題,所有將z軸也縮放了。
1. 建立乙個新的ui,將anchor裡面的uianchor調整的合適的位置,注意最好將anchor設定為bottom。
2. 將camera的size
調節到預設螢幕大小。比如ui是以960*640解析度製作的,那麼將camera的size
調整到960。
3. 在panel上面新增乙個uistretch,模式選擇basedonwidth
。完成之後你可以看到你的panel的scale
被修改到了當前螢幕的x方向解析度大小。
4. 將ui控制項新增到panel上,調整位置,在panel下的所有控制項都會以x方向為標準做等比縮放來適應螢幕大小。
5. 新增一張作為背景的圖,將uisprite的anchor設定為bottom,新增之後你可以看到這個sprite可以在不同的解析度下自適應了。
6. 以上一步新增的背景圖作為參照物來擺放頁面上的控制項,這樣不僅僅是大小,位置也同樣會按照相同的模式進行等比縮放
7. 可以在第3步建立的panel下面新增子panel,子panel不需要uistretch(一般用來做draggable panel,否則沒必要,會增加額外的draw call)
8. 如果某一些控制項需要定位在螢幕上下左右中的某一角,可以單獨給他新增乙個uianchor,這個時候uistretch只會縮放這個控制項的大小,它的位置由他自己的uianchor控制了
Unity3D螢幕特效合成
unity3d可以使用螢幕合成效果,估計很多人都知道,因為自帶的螢幕特效包裡面有很多這樣的例子。比如原來攝像機渲染出來的效果是這樣的 通過合成,你可以把它做顏色的偏移或者反 或者可以在上面合成自己指定的紋理和效果等 螢幕合成的原理其實很簡單,只是把原來螢幕渲染的東西,通過乙個特定的著色器改變內容成為...
Unity3D 螢幕自適應
其實說起來是老問題了,ngui時代,那時候的自適應大部分是交給ngui去處理,但是後來unity3d自家的ugui橫空出世之後,大部分人還是選擇了ugui,剛開始ugui的自適應並不好處理,但是現在已經變成了很容易的問題。在我紅筆標出來的地方就是影響自適應的關鍵地方,我現在的選擇是,1920 108...
unity3D遊戲開發十七之NGUI四
接下來我們講解下uigrid,uigrid是用來輕鬆的排列眾多widget到固定大小格仔的指令碼。編輯時和執行時都可以使用。如果想使用可變的格仔單元大小,你可以使用uitable,屬性如下圖 arrangement的值決定了子節點的擺放位置。horizonta讓子節點向右排列,vertical向下排...