虚幻引擎UI的制作与优化

本文最后更新于:2025年11月6日 晚上

Slate基础原理

image-20251103220809121

SWiget控件的类型

image-20251103231436436

Slot参数

image-20251103234226397

布局流程

image-20251103234552015

计算控件大小

image-20251103234823698

有一些函数会Prepass,比如字符串,这种无法预先知道大小

CPU优化

一些基础的优化手段

image-20251103235326259

手机看不太清可以更激进

逻辑清晰的时候,可以override上述提到的,比如说计算size,直接给出答案或者缓存,可以加快速度

LayerId其实就是调用OnPaint的返回值

无效盒

会自动缓存

RetainerBox:其实就是比如说一个很复杂的图,我提前画好,之后每次都直接用这个就好了,但是会费一点内存

image-20251103235649170

在UI上显示模型

UERT是什么?这个不太懂(需要查找一下)

AI解释:

核心组件解释

1. SceneCaptureComponent2D

  • 一个场景捕获组件,用于捕获场景的2D视图(相机视角)

  • 类似于给场景拍一张照片/截图

  • 可以放在一个独立的场景或 Actor 中,让模型在视野中渲染

2. RT(Render Target)

  • 这里指 Render Target(渲染目标),不是 Ray Tracing

  • 一个纹理资源,用于存储渲染结果

  • SceneCaptureComponent2D 会把渲染内容输出到这个纹理上

  • 在 UE 中通常是 TextureRenderTarget2D

3. Image 控件

  • UI 中的图片控件(UMG/Widget 中的 Image Widget)

  • 可以显示纹理

  • 把 Render Target 赋给 Image 控件,就能在 UI 中显示

工作原理流程

3D模型 → SceneCaptureComponent2D捕获 → Render Target纹理 → Image控件显示

  1. 放置模型和 SceneCaptureComponent2D

  2. 组件把模型的渲染结果输出到 Render Target

  3. 在蓝图中将 Render Target 赋给 Image 控件的 Brush 或 Texture

image-20251104000147367

如何把这个Slate导出成UMG来使用?

image-20251104000751359

Brush和材质

Brush

image-20251104000827073


虚幻引擎UI的制作与优化
https://rorschachandbat.github.io/游戏杂货铺/虚幻引擎UI的制作与优化/
作者
R
发布于
2025年11月3日
许可协议