用途:在编写或修复虚幻引擎Gameplay Framework类(GameMode、GameState、PlayerController、PlayerState、Pawn、Character、HUD、GameInstance)时提供参考。目标引擎为UE 5.8,API已对照5.8头文件验证。这些类位于Engine模块(Classes/GameFramework、Classes/Engine、Classes/Kismet),Build.cs需依赖"Core"、"CoreUObject"、"Engine";绑定输入时添加"EnhancedInput",涉及会话时添加"OnlineSubsystem"与"OnlineSubsystemUtils"(或"OnlineServicesInterface")。
主要能力:给出类职责映射,说明各类所在端与不应放入的数据。GameMode仅在服务端存在,负责规则、加入审批、出生点选择与匹配状态;GameState在所有端复制,承载客户端可读的全局状态、PlayerArray与服务端时钟;PlayerController负责输入、RPC桥接、占有与输入模式;PlayerState承载每玩家的复制数据,构造函数中设置bReplicates与bAlwaysRelevant;Pawn/Character是身体与移动;HUD仅本地玩家;GameInstance跨关卡存在,可放会话句柄与子系统。文档还列出加入流程各阶段的覆写签名(InitGame、PreLogin、Login、PostLogin、OnPostLogin、HandleStartingNewPlayer_Implementation、RestartPlayer、Logout),并强调BlueprintNativeEvent需覆写_Implementation。
使用方式:文档包含示例代码片段,如GameMode构造函数中设置DefaultPawnClass、PlayerControllerClass、GameStateClass、PlayerStateClass、HUDClass、bUseSeamlessTravel;GameState中用UPROPERTY(Replicated)与DOREPLIFETIME注册复制属性,ReplicatedUsing需配套UFUNCTION() OnRep声明;PlayerController中用EnhancedInputLocalPlayerSubsystem添加映射上下文并设置输入模式,Server RPC需WithValidation。获取全部玩家可遍历GameState的PlayerArray。
限制与注意:Replicated属性若缺少OnRep声明或DOREPLIFETIME会静默不复制;SetMatchState是唯一合法状态切换方式,不要直接写MatchState;AController::Possess/UnPossess为virtual final,应覆写OnPossess/OnUnPossess;监听服务器主机同时具备权威与本地玩家,需同时用IsLocalController与HasAuthority判断。复制条件、推送模型、输入系统、角色移动、摄像机、会话等细节属其他技能文档,本文未展开。部分事实(如Experimental特性细节)暂未提供完整说明。