最近在看游戏设计模式,到观察者模式的时候想到代理和事件系统,于是做了下对比
贴一下原文:https://gpp.tkchu.me/observer.html
UE5中的事件系统 对比 传统观察者模式
UE的Delegate系统(非标准观察者模式)
// UE5的Delegate
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnHealthChanged, float, NewHealth);
class YOURGAME_API APlayerCharacter : public ACharacter
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable)
FOnHealthChanged OnHealthChanged;
private:
void TakeDamage(float Damage)
{
Health -= Damage;
// 直接广播 - 性能更高
OnHealthChanged.Broadcast(Health);
}
};
// 监听端 - 不需要继承Observer接口
class UHealthWidget : public UUserWidget
{
UFUNCTION()
void OnPlayerHealthChanged(float NewHealth)
{
// 更新UI
HealthBar->

最低0.47元/天 解锁文章

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



