前面讲了两种,一个是直接传成员变量,一种是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,在人物的控制端,在事件调度器建立事件,一有输入,则调用这个事件,这边造炸药包,谁愿绑谁绑,炸着谁算谁。这边造好后,只管输入,更新值,按按钮即可。



energy事件类似。
这次传Energy,只要按P键,则energy*0.9


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

energy事件类似

运行结果

本文介绍了事件驱动UI更新的方式,通过对比直接传递成员变量和使用get()函数,阐述了在HUD构造函数中绑定事件到控制器的代理设计模式。当用户按下特定键如P键时,能量值会乘以0.9进行更新,这种方式增强了代码的灵活性和解耦性。
2415

被折叠的 条评论
为什么被折叠?



