跳转到正文

常见问题

作

作者

作者

创建时间: 2026年10月21日更新时间: 2026年10月21日

目录

常见问题

下面按接入时最常卡住的点回答。机制细节仍以对应操作指南和核心功能页为准。

蓝图里找不到 GCS 组件?

先确认 GenericCombatSystem 已启用,工程已编译,然后重新打开编辑器再搜索。组件类在 UGCS_CombatSystemComponent、UGCS_TraceSystemComponent、UGCS_BulletSystemComponent、UGCS_TargetingSystemComponent、UGCS_CombatTeamAgentComponent。用 Get / Find 核对应挂在哪个 Actor 上。步骤见 挂上战斗组件。

攻击播了动画,但没有命中或 Attack Result?

先分近战和远程。近战:Trace 组件在不在、Collision Trace Task 有没有 AddMeleeRequest、GCS_ANS_AttackTrace 是否只存了请求、Sweep 通道是否对上。远程:Event 的 OptionalObject 是不是 UGCS_AttackRequest_Bullet,服务器有没有确认 Entry。有轨迹无 GE 时,先看是不是预测弹。排错顺序见 调试与排错。

Gameplay Effect 没拿到攻击上下文?

应用 GE 之前,用 UGCS_CombatFunctionLibrary 把攻击定义句柄写入 Effect Context,需要幅度或动态标签时再写 FGCS_ContextPayload_Combat。Ability System Globals 必须是 UGGA_AbilitySystemGlobals,否则 Combat Flow 读不到 GCS Payload。用 Debugger Attack Result 段或 Get Attack Definition Handle 验证。

多人下客户端表现和服务器结果不一致?

先看服务器是否产生权威 Attack Result 或已确认的子弹 Entry。服务器对了,再查 AutonomousProxy 的预测匹配:复制结果带同一 PredictionKey 时,LocalPredicted Processor 不应再跑。预测弹本来就只有轨迹,不能拿客户端特效当权威命中。

已经买了 GIPS 或 GGA,还要再买一次吗?

GenericCombatSystem 的 Fab 产品会把 Generic Input System、Generic Gameplay Abilities 和 GCS 一并交付。输入缓冲属于产品附带的 GIPS,不是本插件 .uplugin 依赖。已经随本产品获得的 GIPS / GGA 不需要为了启用 GCS 再买一份。

必须用指定角色基类吗?

不必。GCS 不要求特定 Character 父类。Pawn 或组件实现 IGCS_CombatEntityInterface,并挂上需要的战斗组件即可。Debugger Shared 段能看到接口,就说明查找路径通了。

加了 Death Processor,角色为什么没死?

UGCS_AttackResultProcessor_Death 的原生实现是空的,第一次执行只会打一条 Warning。死亡禁用碰撞、布娃娃或销毁 Actor 要项目自己覆写 HandleIncomingAttackResult,或改调实体的 StartDeath / FinishDeath。

项目设置里的战斗设置类去哪了?

当前类名是 UGCS_DeveloperSettings(项目设置显示为 Generic Combat System Developer Settings)。旧名已经用配置 ClassRedirect 接住。新代码和文档只写现名。阵营调试开关是上面的 bDisableAffiliationCheck。

有没有配套项目?

有。插件包本身不带 Content;购买后会另行提供配套项目。在内容浏览器打开 /Game/GenericDemo/GCS,进入 GCS_Demo 即可对照近战、远程、目标和连击。观察步骤见 对照配套项目观察 GCS。

Ability Action Set 是什么资产?

UGCS_AbilityActionSetSettings 是 DataAsset,用来按标签选出一组 Ability Action。它不是 Developer Settings,也不要写成普通 UObject 配置。