UE4 UMG设置组件自适应居中或靠边 - 纳金网
联系我们

给我们留言

联系我们

地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网

邮箱:info@narkii.com

电话:0595-82682267

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

当前位置:主页 > 3D教程 > 图文教程

UE4 UMG设置组件自适应居中或靠边

来源: 52vr | 责任编辑:传说的落叶 | 发布时间: 2019-06-11 08:30 | 浏览量:

比如你的UI中有些组件需要居中显示,有些需要始终在右上角并且与上边框和右边框保持固定的距离等等,对于这种需要动态适应屏幕分辨率的UI组件,有两种设置方式:

1,直接编辑组件的属性Anchors


 

 [UE4]UMG设置组件自适应居中或靠边

 

 

2,代码控制

Cpp代码
  1. ULoginWidget* LoginUI = NULL;   //创建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设置组件自适应居中或靠边


相关文章
网友评论

您需要登录后才可以发帖 登录 | 立即注册

关闭

全部评论:0条

推荐
热门