? 欧美日韩中文字乱码卡一卡二,欧美zooz人禽交国产,日本丰满熟妇bbxbbxhd
聯系我們

給我們留言

聯系我們

地址:福建省晉江市青陽街道洪山路國際工業(yè)設計園納金網

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當前位置:主頁 > 3D教程 > 圖文教程

UE4 UMG設置組件自適應居中或靠邊

來源: 52vr | 責任編輯:傳說的落葉 | 發(fā)布時間: 2019-06-11 08:30 | 瀏覽量:

比如你的UI中有些組件需要居中顯示,有些需要始終在右上角并且與上邊框和右邊框保持固定的距離等等,對于這種需要動態(tài)適應屏幕分辨率的UI組件,有兩種設置方式:

1,直接編輯組件的屬性Anchors


 

 [UE4]UMG設置組件自適應居中或靠邊

 

 

2,代碼控制

Cpp代碼
  1. ULoginWidget* LoginUI = NULL;   //創(chuàng)建UI的邏輯省略  
  2.   
  3. if (UImage* backImg = Cast<UImage>(LoginUI->GetWidgetFromName("ImgBackground")))  
  4. {  
  5.     //獲取屏幕大小和中心點  
  6.     const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY());  
  7.     const FVector2D  ViewportCenter = FVector2D(ViewportSize.X / 2, ViewportSize.Y / 2);  
  8.   
  9.     //假設背景圖片的大小原尺寸大小是1920x1080,下面是通過高寬比來計算當前分辨率下的位置  
  10.     int imgWidget = 1920 * ViewportSize.Y / 1080;  
  11.     int posX = ViewportCenter.X - imgWidget / 2;  
  12.   
  13.     //設置背景圖片的相對X、Y坐標,注意:這里假設Anchors屬性默認的,即X、Y相對屏幕左上方頂點位置  
  14.     backImg->SetRenderTranslation(FVector2D(posX, 0));  
  15. }  

如果需要居中的UI組件很多,可以將居中的UI放在一個容器里,然后只對這一個容器進行居中即可。

這里假設直接將RootWidget居中:

Cpp代碼
  1. LoginUI->GetRootWidget()->SetRenderTranslation(FVector2D(X, Y));  

 

另外,通過代碼設置比例,需要在代碼中考慮當前設備的分辨率,如果不想考慮,將屏幕尺寸設成固定值:

 

[UE4]UMG設置組件自適應居中或靠邊


相關文章
網友評論

您需要登錄后才可以發(fā)帖 登錄 | 立即注冊

關閉

全部評論:0條

推薦
熱門