斯坦福UE4 C++课学习补充24:伤害数值
创建并调用数值显示UI
- 显示数值用UMG实现。创建名为
DamagePopup_Widget
控件蓝图,添加一个数值文本框。设置如下,设置文本框为Is Variable
- 将场景投射到屏幕
Project World Location to Widget Position
节点:它的作用是在UE中将一个世界空间中的位置转换为屏幕空间的位置。这个节点通常用于将3D世界中的某个位置映射到屏幕上的2D坐标。这个节点通常用于UI
交互,或者在HUD
中显示特定的世界位置的标记。
- 几个引脚的含义:
(1)Player
:传入一个Player Controller
,指定要将世界位置投射到哪个玩家的屏幕上。
(2)World Position
:这是你想要投射的世界位置,通常是一个三维向量Vector
,表示你在世界空间中希望转换为屏幕位置的点。
(3)Player Viewport Relative
:是一个布尔值,如果设置为真,则输出的屏幕位置将相对于视口Viewport
,而不是绝对屏幕坐标。
(4)Screen Position
:这个是转换后的屏幕位置,表示为一个二维向量Vector2D
。
(5)·Return Value·:是一个布尔值,表示转换是否成功。如果返回值为真,说明世界位置在当前屏幕范围内,可以正常显示;如果为假,则说明转换失败,例如该位置可能在屏幕之外。
- 设置渲染平移
Set Render Translation
节点:它的作用是用于在UI
中调整控件的渲染位置。它通常用于UI
动画或者动态调整UI
控件的位置,而不改变控件的布局位置。(适合用于一些动态效果的实现)。
- 几个引脚的含义:
(1)目标:用于指定想要平移的UI
控件,通常是一个Widget
类型的引用。
(2)Translation
:这是平移的二维向量Vector2D
,表示想要将控件渲染移动的X
和Y
轴距离。这个值是相对于控件的原始渲染位置进行的偏移。
- 获取视口缩放
Get Viewport Scale
节点:它的作用是获取当前视口的缩放比例。视口缩放比例在处理自适应UI布局时非常重要,特别是在不同分辨率和屏幕大小下,需要根据缩放比例动态调整UI的元素大小和布局。
- 通常返回值是
1.0
,但在一些特殊情况下,例如高DPI
显示器或者在移动设备上运行时,缩放比例可能会有变化。
为什么这里要这样做?
- 因为不同的屏幕会有不同的缩放比例,导致我们本来计算好的X、Y的偏移,不是1.0的时候并不会显示在正确的位置上,所以我们也要根据屏幕的缩放值,调整我们的偏移值。
Delay
节点保证从构造(被打中时)开始计时,类似于计时器的功能后自动从父组件(视口)中消失。- 伤害数值会显示在被投掷物击中
Overlap
且有血量(即有AttributeComp
)的对象上,因此需要一个变量来记录这个对象。在图表中创建一个变量AttachTo
,变量类型设置为Actor
,然后勾选其可编辑实例和生成时公开,从而暴露该变量方便在其他蓝图传递这个变量的值。
- 需要显示击中数值的蓝图设置: