umg传递数据到HUD的第三种方法-按事件驱动

前面讲了两种,一个是直接传成员变量,一种是get()函数。

回顾下:

1,在hud的构造函数蓝图中,传递controller的指针过去,作为成员变量

2,(1)传成员变量

this->value = controller->value;

(2)传递函数

getXXX <-> return node 对

好比

std::string getStr()

{

std::string newValue = controller->value;

return newValue;

}

第一二种方法大同小异。只是书写方式的不同。

现在看事件驱动UI更新。也就是代理的方式

1,在UI的构造函数里,不再传指针,而是bind事件,事件的一端是UI,另一端则将controller->newValue;

2,在人物的控制端,在事件调度器建立事件,一有输入,则调用这个事件,这边造炸药包,谁愿绑谁绑,炸着谁算谁。这边造好后,只管输入,更新值,按按钮即可。

umg传递数据到HUD的第三种方法-按事件驱动

umg传递数据到HUD的第三种方法-按事件驱动

umg传递数据到HUD的第三种方法-按事件驱动

energy事件类似。

这次传Energy,只要按P键,则energy*0.9

umg传递数据到HUD的第三种方法-按事件驱动

umg传递数据到HUD的第三种方法-按事件驱动

 

 

2,在HUD蓝图端构造函数获得Character指针,并绑定事件到Character

umg传递数据到HUD的第三种方法-按事件驱动

energy事件类似

umg传递数据到HUD的第三种方法-按事件驱动

运行结果

umg传递数据到HUD的第三种方法-按事件驱动