参考
事件参考
35 个蓝图事件,按阶段分组;全部是 BlueprintAssignable 动态多播,蓝图只订阅做表现。
事件总线是 UCrossingEventsSubsystem(GameInstance 子系统)。拿法:
Get Game Instance → Get Subsystem (CrossingEventsSubsystem)
→ Bind Event to OnGameStart / OnPlayerJoined / OnError / ...全部是 BlueprintAssignable 动态多播;蓝图只做表现,不参与判定(ADR-023)。
数量以头文件为准:35 个(README.md 写 33 个,是早期数字,后加的两条没有回填)。
载荷参数以 CrossingEventsSubsystem.h 里对应的委托声明为准。
实例与分配(5)
| 事件 | 时机 |
|---|---|
OnInstanceStateChanged | 实例状态变化、回收 |
OnAssignmentReceived | 收到分配(地址、端口、票据、trace) |
OnTravelArrived | 旅行到达 |
OnTravelFailed | 旅行失败 |
OnError | 任意失败的统一出口(带错误码) |
匹配与准备(5)
| 事件 | 时机 |
|---|---|
OnQueueChanged | 队列人数变化 |
OnMatchFound | 配到一组 |
OnMatchFailed | 匹配失败(超时、取消、无实例) |
OnReadyCheckStarted | 开始确认 |
OnReadyChanged | 某人的准备状态变化 |
房间与对局(5)
| 事件 | 时机 |
|---|---|
OnPlayerJoined | 玩家进房 |
OnPlayerLeft | 玩家离开 |
OnGameStart | 开局 |
OnGameEnd | 结束 |
OnMatchSettled | 结算完成 |
OnTeamBalanced | 队伍调整/换边 |
断线与重连(3)
| 事件 | 时机 |
|---|---|
OnPlayerDisconnected | 掉线,座位保留 |
OnPlayerReconnected | 重连成功 |
OnReconnectExpired | 重连窗口过期 |
规则事件(6)
| 事件 | 时机 |
|---|---|
OnSafeToLeave | 可以安全离开 |
OnRemakeTriggered | 开局减员重开 |
OnAfkDetected | 检测到 AFK |
OnSurrenderVoteStarted | 发起投降投票 |
OnSurrenderVoteUpdated | 票数更新 |
OnSurrenderPassed | 投票通过 |
系列赛与赛季(4)
| 事件 | 时机 |
|---|---|
OnSeriesStarted | 系列赛开始 |
OnRoundEnded | 一回合结束 |
OnSeriesFinished | 系列赛结束 |
OnSeasonChanged | 赛季滚动/衰减 |
观战、迟到与 Bot(4)
| 事件 | 时机 |
|---|---|
OnSpectatorJoined | 观战者进 |
OnSpectatorLeft | 观战者出 |
OnLateJoin | 中途加入 |
OnBotJoined | Bot 补位 |
OnBotReplaced | Bot 被真人顶替 |
档案(1)
| 事件 | 时机 |
|---|---|
OnProfileUpdated | 档案块更新 |
三条使用约定
- 事件不保存状态:要查当前队列、实例、队伍,用对应子系统的查询函数;事件只通知「变了」。
- 蓝图不判定:胜负、结算、封禁都在服务端决定,事件只是结果。
- 不重复订阅:子系统是 GameInstance 级,跨地图不销毁;在
BeginPlay里绑要注意解绑, 或者用一个持久的监听对象。
下一页:配置参考。