虛幻4DPI自適應縮放規則解析

2021-07-25 03:34:19 字數 2348 閱讀 7354

umg

支援與解析度無關的

ui進行自動縮放,可以設定

ui隨視窗大小變化的股規則。在

projectsetting-engine

部分下的

設定

選單中,提供了應用於每個專案的預設

dpi

縮放規則。(

4.6版本與新版本所在位置不同,看下圖)

圖 1  4.9版本的dpi設定介面

圖 2  4.6版本的dpi設定介面

首先,我們先做個測試。下面圖3一直到圖6是對當前遊戲ui隨視窗變化的效果測試。

圖 3

圖 4注意,橫向拉伸圖中的按鈕大小沒有變化(如圖3與圖4)。

圖 5長寬比小於1時,按鈕開始變小(如圖5)。

圖 6豎向拉伸,按鈕變小(如圖6)。

上面的測試說明,ue4要保持控制項在豎直方向的比例位置正常,也就是說如果視窗在豎直方向變長,對應按鈕就會按照一定比例變大。如果視窗在水平方向上變長,按鈕沒有任何變化。但是當視窗豎直方向長度大於水平方向長度時,按鈕就會反過來隨著水平方向而變化。

上面的效果總結一下,就是umg介面隨著視窗最短的乙個邊的拉伸或者縮短而放大或縮小。其實,這時dpi縮放規則之一shortestside。我們在設定介面可以設定5種規則。

最短邊

(shortestside)-

該選項將基於視窗的最短邊來評估縮放曲線(最常用的設定)。

最長邊(longsetside

-基於視窗的最長邊來評估縮放曲線。

水平

(horizontal)-

基於視窗的

x 軸來評估縮放曲線。

垂直(vertical

-基於視窗的

y 軸來評估縮放曲線。

使用者自定義(custom-

使用者自定義規則。(

4.9以後版本,暫時不清楚怎麼使用)

最小曲線(smallestcurve

-同時基於

xy兩個軸來評估縮放曲線。(

4.6以前的

版本)我們常用的就是第一種規則。

下面我們看一下,曲線如何設定。在4.6版本,有兩個曲線,分別表示視窗的x軸和y軸,在4.9以後的版本,只有一條曲線(因為在前4種規則中,我們其實只是使用一條曲線)。

曲線的使用與ue4裡的curve相同,新增乙個關鍵點,輸入對應解析度和scale(縮放比例)。如圖2-7就表示在視窗y軸方向長度為1080時,umg控制項的大小為1倍,當長度為480的時候,umg控制項大小為原來的0.44倍,如果長度繼續縮小的話,控制項的大小也不會再改變了。同時,我們也可以事先建立好曲線,在這裡呼叫。

圖 7  4.5版本設定介面

圖 8  4.9版本設定介面

備註:1.

目前custom scaling ruleclass

的設定還不清楚,不知道應該建立什麼檔案。所以新版本暫時不知道如何達到

那種在兩個方向同時縮小的辦法。

2.該模組設定的類位置在

\ue4\unrealengine-4.8-full\engine\source\runtime\engine\classes\engine\userinte***cesettings.h

QT程式在不同dpi下的字型自適應問題

問題描述 近日在做關於qt的乙個上位機專案,開發時使用的螢幕解析度為1080 1902,開發完成後,傳到筆記本上給導師展示的時候發現有些字型出現顯示不全的情況 如下圖所示 經過一番折騰,找到乙個初步解決方案,故分享出來供大家討論。問題分析 該問題主要由於螢幕的dpi不同所致。dpi反映的是每英吋長度...

ios webview自適應實際內容高度4種方法

有的時候會碰見類似的苦逼需求,webview自適應實際內容高度 下面有四種方法供使用 方法1 獲取webview中scrovllview的contentsize進行設定 1 2 3 4 5 6 void webviewdidfinishload uiwebview webview 方法2 執行js語...

vue cli4實現自適應布局

webpack打包時,通過postcss pxtorem外掛程式,將原先寫的px單位轉換成rem,然後通過amfe flexible外掛程式監聽視窗變化,設定根元素得fontsize,實現自適應效果 cnpm i amfe flexible s 需要打包進專案 s cnpm i postcss px...