UE4 UMG設置組件自適應居中或靠邊
來源:
52vr |
責任編輯:傳說的落葉 |
發布時間: 2019-06-11 08:30 | 瀏覽量:
比如你的UI中有些組件需要居中顯示,有些需要始終在右上角并且與上邊框和右邊框保持固定的距離等等,對于這種需要動態適應屏幕分辨率的UI組件,有兩種設置方式:
1,直接編輯組件的屬性Anchors
2,代碼控制
- ULoginWidget* LoginUI = NULL; //創建UI的邏輯省略
- if (UImage* backImg = Cast<UImage>(LoginUI->GetWidgetFromName("ImgBackground")))
- {
- //獲取屏幕大小和中心點
- const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY());
- const FVector2D ViewportCenter = FVector2D(ViewportSize.X / 2, ViewportSize.Y / 2);
- //假設背景圖片的大小原尺寸大小是1920x1080,下面是通過高寬比來計算當前分辨率下的位置
- int imgWidget = 1920 * ViewportSize.Y / 1080;
- int posX = ViewportCenter.X - imgWidget / 2;
- //設置背景圖片的相對X、Y坐標,注意:這里假設Anchors屬性默認的,即X、Y相對屏幕左上方頂點位置
- backImg->SetRenderTranslation(FVector2D(posX, 0));
- }
如果需要居中的UI組件很多,可以將居中的UI放在一個容器里,然后只對這一個容器進行居中即可。
這里假設直接將RootWidget居中:
- LoginUI->GetRootWidget()->SetRenderTranslation(FVector2D(X, Y));
另外,通過代碼設置比例,需要在代碼中考慮當前設備的分辨率,如果不想考慮,將屏幕尺寸設成固定值:
-
分享到:
相關文章
網友評論
全部評論:0條
推薦
熱門