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...