UE Lyra示例LyraExperienceActionSet模块解析


前言

在 ​UE5 Lyra 示例项目中,LyraExperienceActionSet 是一个关键的数据驱动模块,主要用于**动态管理游戏体验的输入配置(Input Mapping)和技能系统(Ability System)**​。以下是其核心作用:


一、核心功能?

  1. 输入映射管理
  • 通过绑定 ​Enhanced Input 系统的 Input Mapping Context,为不同游戏模式(如射击、近战)或角色类型(如英雄、敌人)​动态切换输入配置
  • 示例:射击模式下绑定开火/换弹输入,近战模式下绑定格挡/连击输入。
  1. 技能系统集成
  • 通过 ​Gameplay Ability System (GAS) 为角色赋予特定的技能集合(AbilitySet),例如冲刺、治疗、武器技能等。
  • 示例:为英雄角色加载武器技能,为敌人加载特殊攻击技能。
  1. 模块化配置
  • 允许将输入和技能配置解耦为独立的 ActionSet 资产,通过组合不同 ActionSet 实现灵活的游戏体验切换。
  • 示例:一个 ActionSet 负责射击输入,另一个 ActionSet 负责角色基础技能。

二、实际应用场景

​1. 游戏模式切换

  • 当玩家从大厅进入战斗时,通过加载不同的 LyraExperienceActionSet 动态切换输入和技能配置。
  1. 角色差异化
  • 不同职业角色(如战士、法师)使用独立的 ActionSet,实现差异化的操作和技能逻辑。
  1. DLC/内容扩展
  • 通过 Game Feature 插件动态加载新的 ActionSet,为游戏添加新技能或输入模式(如新增武器类型)。

三、技术实现流程

  1. 配置阶段
  • 在 LyraExperienceDefinition 数据资产中引用一个或多个 LyraExperienceActionSet,关联对应的 InputConfig 和 AbilitySet。
+ LyraExperienceDefinition (主体验配置)
  - Actions:
    + ActionSet_Shooter (LyraExperienceActionSet)
      - InputConfigs: [Input_Shooting]
      - AbilitySets: [AbilitySet_Rifle]
    + ActionSet_Character (LyraExperienceActionSet)
      - AbilitySets: [AbilitySet_Dash, AbilitySet_Heal]
  1. 运行时激活
  • 当游戏加载 LyraExperienceDefinition 时,自动激活关联的 ActionSet,完成输入映射和技能赋予:
    ​ - 输入映射:将 Input Mapping Context 注入到玩家控制的 Enhanced Input 子系统。
    ​ - 技能赋予:通过 ULyraAbilitySystemComponent 将 AbilitySet 中的技能赋予角色。
  1. 动态卸载
    • 当切换游戏模式或卸载 DLC 时,自动移除相关的输入映射和技能,避免资源残留。

四、代码逻辑片段

// 伪代码:LyraExperienceActionSet 的激活逻辑
void ULyraExperienceActionSet::OnGameFeatureActivating() {
    // 1. 绑定输入映射
    for (ULyraInputConfig* InputConfig : InputConfigs) {
        UEnhancedInputLocalPlayerSubsystem::Get()->AddMappingContext(
            InputConfig->InputMappingContext,
            InputConfig->Priority
        );
    }

    // 2. 赋予技能
    if (ULyraAbilitySystemComponent* ASC = GetLyraASC()) {
        for (TSubclassOf<ULyraAbilitySet> AbilitySetClass : AbilitySets) {
            const ULyraAbilitySet* AbilitySet = GetDefault<ULyraAbilitySet>(AbilitySetClass);
            AbilitySet->GiveToAbilitySystem(ASC);
        }
    }
}

总结

​1. 解耦设计
输入、技能、UI 等系统通过 ActionSet 分离,避免硬编码依赖。

​2. 动态资源管理
支持运行时加载/卸载,适用于开放世界或模块化游戏。

​3. 协作友好
策划人员可通过数据资产配置,无需修改代码。

LyraExperienceActionSet 是 Lyra 框架实现数据驱动游戏逻辑的核心模块,通过它开发者可以快速构建复杂的多模式游戏体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值