SuperAPI AI 工具集

gameplay-framework

编程与开发

查看项目

更新于 11-06 17:17

技能介绍

用途

该技能用于指导虚幻引擎(Unreal Engine)游戏玩法代码的架构设计:在 C++ 中实现并组织 GameInstance、GameMode、GameState、PlayerController、Pawn、Character、PlayerState、HUD 等框架类,帮助开发者判断每段逻辑应放在哪个类中,以及如何处理服务器与客户端的职责边界。

主要能力

  • 说明各框架类的存活位置、核心职责与是否复制:UGameInstance 跨关卡常驻、不复制;AGameModeBase 仅服务器;AGameStateBase 服务器与所有客户端并复制;APlayerController 仅复制给所属客户端;APlayerState 复制给所有客户端;APawn/ACharacter 复制给所有客户端;AHUD 仅本地。
  • 给出版本 5.8 源码中验证的类继承关系与关键访问器,如 GetWorld()->GetGameState<T>()、GetWorld()->GetAuthGameMode<T>()、GetGameInstance<T>()、GetPawn()、GetController() 等。
  • 描述服务器端玩家加入时的驱动流程:InitGame → PreLogin → Login → PostLogin → HandleStartingNewPlayer → RestartPlayer → FindPlayerStart → SpawnDefaultPawnAtTransform → Possess。
  • 说明占有(Possession)机制:Possess 在 5.8 中为 final,应改为重写 OnPossess/OnUnPossess;Pawn 侧可重写 PossessedBy。
  • 展示在 C++ 构造函数中设置 DefaultPawnClass、PlayerControllerClass、PlayerStateClass、GameStateClass、HUDClass 的方式,以及通过项目设置或关卡世界设置挂接 GameMode。
  • 提供“逻辑放哪里”的决策指引:规则与生成归 GameMode;全局可见状态归 GameState;每玩家复制数据归 PlayerState;输入/相机/UI 归 PlayerController;物理移动与化身能力归 Pawn/Character;跨关卡或应用级状态归 GameInstance 或 UGameInstanceSubsystem。
  • 介绍 GameInstance 生命周期(Init/Shutdown)与 UGameInstanceSubsystem 的初始化/反初始化及访问方式。
  • 给出 APlayerState 的复制数据示例(TeamIndex 与 GetLifetimeReplicatedProps),并列出内置复制字段如 Score、PlayerNamePrivate、PlayerId 等。
  • 说明网络角色判断:用 HasAuthority() 或 GetLocalRole() == ROLE_Authority 区分服务器与客户端。
  • 推荐 C++ 基类 + 蓝图子类模式:逻辑与复制状态放 C++,设计者可调参数用 UPROPERTY(EditDefaultsOnly) 暴露,再以蓝图子类作为默认类。
  • 列出常见陷阱:客户端调用 GetAuthGameMode() 返回空;Pawn 上的持久状态会在死亡/重生时丢失;占有与生成不是一对一生命周期;AGameModeBase 不含 MatchState 机制;DispatchPostLogin 在 5.6 弃用,应重写 OnPostLogin;AHUD 为旧式画布绘制,现代 UI 建议用 UMG;GameInstance 不复制,不能作多人共享状态存储。
  • 附版本说明:AGameModeBase 自 4.14 引入;Possess/UnPossess 自 4.22 起为 final;DispatchPostLogin 于 5.6 弃用;框架在 UE 5.x 稳定。

使用方式

该技能本身以文档与代码示例形式提供,包含主说明及 references/gamemode-and-state.md、references/controllers-and-pawns.md、references/init-and-login-flow.md 等深入参考,并交叉引用 actors-and-components、character-and-movement、subsystems、networking-and-replication、blueprint-cpp-integration 等主题。资料未提供安装命令或调用命令。

适用场景

创建新的 GameMode、GameState、PlayerController、Pawn、PlayerState 或 HUD 类;实现登录、生成、重生、占有逻辑;决定状态应放服务器、复制、每玩家还是跨关卡;在 C++ 中配置默认类并向设计者暴露蓝图子类;搭建生成/占有流程或比赛状态机。

限制

该技能聚焦单个框架类与流程的组织,网络属性/RPC 细节需参考 networking-and-replication;角色移动细节参考 character-and-movement;UMG/Slate UI 参考 umg-and-slate。资料中的源码行号可能随补丁版本漂移,但头文件路径与类名稳定。资料未提供收费、价格或平台相关信息。