在 UE5 里Event Dispatcher事件分发器本质是 一种“广播机制”让一个蓝图发出信号其他蓝图接收信号。 一句话理解它就像 “我按下门铃”谁在听门铃谁就会响应 为什么需要它在 UE 里蓝图 A 想通知 蓝图 B但 A 不想直接依赖 B或者有很多对象都要响应这时候就用 Event Dispatcher。 举个最常见例子 例子角色血量归零在BP_Player里血量 0你希望UI 显示 “Game Over”音乐停止敌人停止攻击播放死亡动画如果一个个调用Get UI → 调函数 Get Music → 调函数 Get Enemy → 调函数会非常乱 ❌✅ 正确做法用 Event Dispatcher在BP_Player里创建OnPlayerDead (Event Dispatcher)当血量归零Call OnPlayerDead其他蓝图Bind Event to OnPlayerDead当广播发生它们自动执行自己的逻辑。 结构图BP_Player ↓ 广播 OnPlayerDead ↓ UI Music Enemy Camera一个广播多个监听者。 和普通函数的区别普通函数Event Dispatcher点对点调用广播强依赖松耦合只能一个对象执行可以多个对象执行 它是怎么工作的Event Dispatcher 有 3 步1️⃣ 创建在蓝图 Variables 里点 Event Dispatcher2️⃣ 绑定Bind在其他蓝图里Bind Event to XXX3️⃣ 调用Call在原蓝图里Call XXX 技术本质它其实类似C 里的 DelegateC# 里的 EventJavaScript 里的 EventEmitter⚠️ 新手最容易犯的错误没有 Bind 就 Call → 没反应Bind 在 BeginPlay 之前执行 → 绑定失败忘记保存引用 什么时候一定要用✔ UI 和角色通信✔ 组件之间通信✔ 一个事件影响多个对象✔ 不想强引用对方 简单理解版本Event Dispatcher 蓝图里的“广播电台”谁订阅谁就能听到。如果你愿意我可以给你画一张 UE 蓝图通信方式对比图Cast / Interface / Event Dispatcher 区别