UGUI適配非全屏介面

2021-08-21 13:06:27 字數 821 閱讀 9579

最近在做ugui的適配,如果是全屏介面還好,如果介面不是全屏的,需要首先設定anchors,然後根據螢幕大小,進行縮放。

在所有的ui根節點上(我們稱為uiroot),掛載乙個canvas scaler元件,這個元件是專門根據實際寬高比,對uiroot的進行縮放,這個元件中的reference resolution(比如是1334*750)我們稱為開發解析度,所有ui尺寸是基於這個解析度下設定的,canvas scaler下另乙個屬性screen match mode是螢幕匹配的方式有三種方式,在這裡我選擇的是match width or height,是表示根據寬度或者高度進行適配,在選擇了match width or height,下方會出現乙個match選項,對width和height進行加權,如果width選擇0,則是表示寬度不動,對高度進行縮放進行適配。在這裡我選擇的是width為0。

當遊戲執行在某一解析度(如2436*1125)上時候,實際寬高比跟開發解析度的寬高比會有可能不一樣,canvas scaler元件根據實際寬高比,對uiroot的高度進行縮放,我們稱uiroot調整後的寬高解析度為基準解析度,在我的專案中uiroot高度縮小為616。這時候一些介面如果是非全屏、anchors在螢幕左上角或其他三個角的時候,如果開發高度大於616不進行縮小的話,是會超出螢幕的。解決辦法是求出基準解析度的高與開發解析度高的比值s,表示開發解析度的高度縮放到基準解析度的高度所進行的縮放,也就是非全屏介面所要進行的縮放係數,然後對非全屏介面的localscale進行賦值即可。

上**:

public vector3 scalebyoriginalheight(float height)

這樣任何乙個非全屏介面,都可以進行完美適配。

iPhone X全屏適配

當你的專案執行於iphone x模擬器的時候是否會出現以下這種情況?不能全屏,上下出現了大黑邊,受到以前在設定了啟動頁,把啟動頁刪除出現的上下黑框的啟發,於是想到只要給給iphone x設定乙個對應的啟動頁,就會實現全屏顯示。實現方法如下,首先開啟launchimage 我這裡啟動頁使用的launc...

Android全屏與非全屏問題

設定全屏一般常用的方法有2種。一,在andriodmanifest.xml檔案中設定 android theme android style theme.light.notitlebar.fullscreen true true 然後我們就可以使用這個theme了 android allowback...

toggle介面轉化(UGUI)

右鍵ui image,乙個是背景,乙個是背景框,如圖 接下來就做toggle的部分了,toggle就是在多選框裡單選乙個,如圖 在這裡我們要仿照toggle的效果來做乙個公升級版的toggle,做法如下 新建立乙個image命名為my,material看自己啦,然後add component加 to...