UE5 WidgetBluePrint蓝图控件渲染流程解析

一、控件蓝图Widget BluePrint

1.什么是控件蓝图?

控件蓝图(Widget BluePrint)是负责Widget的,即UMG界面的UI设计。一般命名缩写为WBP_xxx。
在项目中我们时常需要创建标签,窗口以及各种可视化UI界面。这时就需要通过控件蓝图将对应的可视化界面制作出来,放到场景中,并实现对应的交互功能。

2.创建控件蓝图

点击空白处右键->用户界面->控件蓝图 既可以创建并制作需要的UMG界面
在这里插入图片描述

3.控件蓝图相关参数解析

在控件蓝图中可以添加各种各样的控件,而这些控件的渲染顺序由ZOrder决定。
在这里插入图片描述

ZOrder的值越高,则越靠后渲染,即将显示在顶部。需要注意的是,ZOrder只会影响当前控件蓝图中控件的渲染顺序,不同控件蓝图中的ZOrder不会互相影响。
在这里插入图片描述
在这里插入图片描述

可以注意的是,当ZOrder的值相同时,布局排在下面的会渲染在上方。可以理解为,渲染蓝图控件时,由上到下渲染,渲染顺序越靠后,则渲染在顶部。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.将控件蓝图添加到场景中

创建好的控件蓝图可以通过两种方式添加到场景中。

通过create widget->add to viewport

一般在需要全局存在且布局格式一定时,会采用这种方法在初始化场景时进行界面的创建。因此需要在界面设计时,就避免按钮的重叠。
在这里插入图片描述

Add to viewport默认的ZOrder为0。
当不修改ZOrder时,创建的UMG界面会根据添加到视口(Add to Viewport)的先后顺序进行渲染,后添加的会渲染在前一个窗口的上方
当修改了ZOrder后,则会根据ZOrder的进行渲染优先级的排序。ZOrder数字越高,控件所处的层级越高,即渲染在上方。

附加到actor中,在actor中添加widget component组件。

一般在不同位置生成,可以控制选择生成为场景控件还是屏幕控件。
可以直接将控件放置到需要的场景位置中,
当为屏幕控件时,需要注意不同控件之间的层级关系,避免形成遮挡,文章的第二部分中有相应的解析。

二、Widget Component

1.在Actor中添加控件蓝图

在这里插入图片描述

在组件->添加 中搜索widget就会出现widgetcomponent,将其添加到actor即可。

2.控件渲染顺序

在actor中的控件蓝图可以分为两大类,一种为场景控件world,一种为屏幕控件screen。
由下图中可以看到,当选择world时,控件在场景中被渲染为网格体,能够被场景中其他网格体遮挡。且窗口的大小与人物的距有关。此时的控件蓝图无法简单的通过鼠标点击button实现对应的事件。
选择space时,控件在屏幕中渲染,完全在场景外,不会被其他的网格体遮挡,且能够以固定的大小显示在屏幕上。此时的控件蓝图可以直接通过鼠标点击实现对应的button绑定事件。
在这里插入图片描述

不同widget component的渲染顺序:
ZOrder的值越高,则越靠后渲染,即将显示在顶部。同时需要修改SharedLayerName的名字。一个ZOrder图层对应一个SharedLayerName。
在这里插入图片描述

举例:
大地图的图层名为BigMap,对应的ZOrder为-99.
小地图的图层名为MiniMap,对应的ZOrder为-100.
在这里插入图片描述
在这里插入图片描述

即小地图的Layer ZOrder小于大地图的Layer ZOrder,大地图渲染在了小地图的上面。
在这里插入图片描述

将小地图的Layer ZOrder设为-98时,即小地图的Layer ZOrder大于大地图的Layer ZOrder,则小地图显示到了大地图上面。
在这里插入图片描述

且如图所示,Layer ZOrder只在新图层首次创建时才存在影响,之后添加到相同图层使用最初定义的ZOrder。
在这里插入图片描述

即第一次将BigMap的Layer ZOrder设为-99,那么后面相同命名(BigMap)的图层,即使将Layer ZOrder设为了-100,控件蓝图也还是会添加到最初的ZOrder为-99的图层。
在这里插入图片描述

如上图所示,此时BigMap的Layer ZOrder 为 -99,MiniMap的Layer ZOrder 为 -100.
后创建的绿色窗口加入了MiniMap的图层,但是Layer ZOrder 设为 -98,但是仍然显示在了大地图下方,说明它此时的Layer ZOrder还是为-100,即图层首次创建时的ZOrder。
因此需要注意:在screen模式下创建的控件蓝图需要做好图层分配,避免出现冲突。

3.图标设置近大远小效果

推荐:WidgetComponent->GetWidegt->SetRenderScale(设置渲染范围)
通过SetRenderScale(设置渲染范围)可以动态设置WidgetComponent中Widget的缩放比例,会自动缩放/放大一整个标签的效果。即不需要动态控制UMG里图片和文字的大小,非常的便利。
在这里插入图片描述

参考文档:【UE5】WidgetComponent的进阶使用

WidgetComponent->SetDrawSize(设置绘制大小)
通过SetDrawSize(设置绘制大小)可以设置WidgetComponent的绘制大小,缺点是并不会自动缩放WidgetComponent中widget的图片/文字/按钮的大小,需要在对应的UMG中也同步修改相关内容的大小。
在这里插入图片描述

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 UE5 中,您可以使用以下步骤来切换控件蓝图里的按钮图片: 1. 在 UE4 的资源管理器中,找到您想要使用的图片并将其拖放到场景中。 2. 在控件蓝图中,选择您希望更改图片的按钮。 3. 在按钮的属性面板中,找到“图片”属性并单击其旁边的编辑按钮。 4. 在弹出的编辑器中,选择“使用图像”选项卡。 5. 在“图像”字段中,选择您想要使用的图片资源。 6. 单击“确定”按钮来关闭编辑器,然后在游戏中运行该控件蓝图,您应该能看到按钮的图片已被更改。 ### 回答2: 在UE5中,要切换控件蓝图里面的按钮图片,可以按照以下步骤进行操作: 1. 打开控件蓝图,在蓝图编辑器中找到要切换图片的按钮控件。 2. 在蓝图编辑器的右侧面板中,找到按钮控件的详细信息。可以通过点击控件,然后在右侧面板的“Details”标签中查看或修改其属性。 3. 在属性面板的“Appearance”部分,找到按钮的“Normal Image”属性。 4. 点击“Normal Image”属性旁边的下拉箭头,选择“创建新的材质实例”(Create New Material Instance)。 5. 在弹出的对话框中,为新的材质实例命名,并点击“OK”按钮。 6. 在“Normal Image”属性下方的材质资源属性中,点击右侧的“打开资源编辑器”按钮。 7. 在资源编辑器中,可以选择导入自己的图片或者选择已有的图片资源。点击“导入”按钮,选择图片文件并确认导入。 8. 在资源编辑器中,可以对导入的图片进行编辑和调整,如调整大小、位置或添加特效等。 9. 完成编辑后,点击资源编辑器中的“保存”按钮,然后关闭资源编辑器。 10. 回到蓝图编辑器中,可以在材质实例属性中的“Texture”属性中查看刚刚导入的图片。 11. 如果需要切换图片,在按钮的蓝图中,可以通过代码或事件触发来修改按钮的“Normal Image”属性,从而切换按钮显示的图片。 12. 最后,保存蓝图并运行游戏,按钮将显示切换后的图片。 通过以上步骤,可以在UE5中切换控件蓝图里面按钮的图片。 ### 回答3: UE5中切换控件蓝图里面的按钮图片可以通过以下步骤实现: 1.在控件蓝图中创建一个按钮(Button)组件,并将其放置在适当的位置。 2.选中该按钮,在Details面板中找到Appearance选项卡下的Style区域。 3.打开Style区域,找到Normal选项,点击右侧的图片选择按钮。 4.在弹出的资源浏览器中选择想要切换为的图片,并点击确认。 5.可以在Hovered、Pressed、Disabled等选项中同样进行图片切换,以满足不同状态下的需求。 6.保存并关闭控件蓝图。 以上步骤完成后,按钮的图片将会根据设置的不同状态进行切换。在游戏或应用中,当鼠标悬停、按下按钮,或按钮处于禁用状态时,相应的图片将会展示出来。 需要注意的是,在UE5中,按钮的各种状态的图片切换是基于Button Style来实现的,通过选择不同的图片资源来更改样式。因此,切换按钮图片时需要提前准备好不同状态的图片资源,并将其与按钮关联起来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值