UE4利用委托实现观察者模式
应用场景
当游戏运行过程中,当一个MainActor某个行为的发生会对其他多个object产生影响时可以采用观察者模式,这样可以避免MainActor与其他object发生强耦合关系。如果不采用观察者模式,可能的做法是将object加入到MainActor的行为方法中,如果有多个object那么该方法将显得非常复杂。
观察者模式
使用观察者模式,使得观察者(object)和主题(mainactor)之间解耦,使得主题只需要处理自己的逻辑,然后object的反应也只需要在Object内部实现
实现
目标:UI显示当前Level中敌人个数,然后随着敌人的死亡,UI更新
方法:利用委托
MainActor -- 敌人类
在敌人的类中声明一个委托,然后在敌人死亡时进行广播。开始通知其他object执行逻辑
//.h
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnDeath);
FOnDeath OnDeath;
//.cpp
void AXActor::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpilse, const FHitResult& Hit)
{
OnDeath.Broadcast();
Destroy();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律