目前安卓手機的螢幕大小各異,沒有統一的標準,因此用unity 3d製作的手遊需要做好對不同解析度螢幕的ui自適應,否則就會出現ui大小不一和位置錯位等問題。
我們的專案在開發時的參照解析度(reference resolution )設定的是主流的1920*1080,我們通過unity提供的canvas scaler元件實現ui對不同解析度螢幕的自適應。
以下圖中canvas的子物件panel-repository為例
我們在inspector面板中將panel-repository這一ui元件的錨點定在左下角,這樣panel-repository就相對於畫布canvas左下角不動,從而使該ui元件隨螢幕調整時不會超出canvas左下角
設定好錨點之後可以看下ui在不同解析度螢幕下的效果
1920*1080 (參照解析度)下:
本專案中ui元件可按錨點可劃分成4部分,分別對應畫布canvas的四個角:
可以看出各ui元件是相對於錨點不動的
1560*720:
因為螢幕(canvas大小同螢幕大小相等)的高度從1080變為720,導致部分ui元件超出了畫布範圍
但是可看出四部分相對於各自的錨點仍是不變的(錨點在左上角的text因為ui層級關係被遮擋,錨點在右上角的橙色按鍵並未超出canvas右上角)
調節scale factor有什麼效果呢?請看**:
可見,scale factor可以幫助我們調整ui元件在canvas裡邊的顯示大小。在不同解析度的螢幕下,可以編寫指令碼,在場景初始化時按照\(\frac\)設定scale factor數值
需要注意的是,scale factor其實並未改變ui各元件的size(inspector裡的width和height),而是調整了canvas的size。
在上述專案中,當螢幕大小是1560*720時,
至此,ui的自適應功能成功搞定。
Unity3d 使GUI適應螢幕解析度
unity3d 使gui適應螢幕解析度 用unity開發移動平台的遊戲 不可避免的會遇到螢幕解析度的問題 不同的解析度上會使得原本正常的ui變得亂七八糟 我們知道 在unity中可以拿乙個plane作為背景 ui則是繪製在離攝像機最近的位置 可以認為是繪製在攝像機上的 因此解析度的不同會導致ui的位...
NGUI UI自適應解析度 手遊
首先介紹 本人菜鳥的環境配置 ngui 3.5.8 unity 3d 4.3 首先 建立乙個空的 工程之後 選擇ui root uiroot script scaling style選擇fixedsize 然後在uiroot下面建立乙個空gameobject 選中這個物件 新增乙個uianchor ...
unity3d大型手遊 可以打包obb檔案
用unity3d開發手遊,有個很大的問題就是apk的size太大,如果超過50m,一般很多平台就不會肯上線。1.編譯成obb資料報的方式 unity3d 4.x上有很簡單的手法,選乙個checkbox即可 3.obb檔案要存成 mnt sdcard android obb packagename m...