GameInstance、SubSystem等
摘要:全局进行统一的生命周期管理 GameInstance、SubSystem等
阅读全文
posted @
2025-10-24 10:56
偷懒的阿贤
阅读(4)
推荐(0)
封装操作为 UCommand对象,支持撤销/重做,进行命令封装
摘要:实现方式:封装操作为 UCommand对象,支持撤销/重做。 应用场景: 蓝图交互:将玩家输入(如按键)封装为可执行命令。 撤销系统:支持移动、攻击等操作的回退。 优势:解耦操作发起者与执行者,支持历史记录管理 。
阅读全文
posted @
2025-10-24 10:54
偷懒的阿贤
阅读(3)
推荐(0)
通过 UInterface定义策略接口,不同子类实现具体逻辑
摘要:实现方式:通过 UInterface定义策略接口,不同子类实现具体逻辑。 应用场景: 武器系统:物理/魔法/毒素伤害计算策略。 AI 行为:不同敌人的攻击策略动态切换。 优势:算法可插拔,支持运行时动态替换 。
阅读全文
posted @
2025-10-24 10:54
偷懒的阿贤
阅读(3)
推荐(0)
AI状态机等
摘要:实现方式:通过 UEnum定义状态,结合 Switch分支或状态机组件(如 GameplayTask)。 应用场景: 角色行为:切换 Idle/Run/Attack 状态。 AI 决策:巡逻、追击、攻击等状态动态切换。
阅读全文
posted @
2025-10-24 10:54
偷懒的阿贤
阅读(6)
推荐(0)
通过接口转换兼容不同模块的数据格式
摘要:实现方式:通过接口转换兼容不同模块的数据格式。 应用场景: 第三方库集成:将外部 SDK 数据转换为 UE5 内部格式。 跨平台输入:适配不同设备的按键/触控事件。 优势:解决接口不兼容问题,提升系统扩展性 。
阅读全文
posted @
2025-10-24 10:49
偷懒的阿贤
阅读(5)
推荐(0)
通过 MediaPlayerFacade简化复杂子系统调用
摘要:实现方式:通过 MediaPlayerFacade简化复杂子系统调用。 应用场景: 视频播放:统一接口管理解码、渲染、同步等底层逻辑。 多媒体模块:隐藏不同格式视频的解码细节。 优势:降低模块间耦合,提供统一操作入口 。
阅读全文
posted @
2025-10-24 10:49
偷懒的阿贤
阅读(6)
推荐(0)
使用 UFactory基类或 CreateDefaultSubobject()动态生成对象
摘要:实现方式:使用 UFactory基类或 CreateDefaultSubobject()动态生成对象。 应用场景: 动态生成敌人:根据配置生成 AZombie或 ADemon。 武器系统:通过 UWeaponFactory创建不同武器类型。 优势:封装对象创建逻辑,提升扩展性 。
阅读全文
posted @
2025-10-24 10:47
偷懒的阿贤
阅读(4)
推荐(0)
通过 BP_GameState等中介者类集中管理交互逻辑
摘要:实现方式:通过 BP_GameState等中介者类集中管理交互逻辑。 应用场景: 敌人数量同步:敌人销毁时通知 UI 和大门组件。 动态事件聚合:避免多个对象直接依赖,统一由中介者协调。 优势:减少对象间直接耦合,简化交互逻辑 。
阅读全文
posted @
2025-10-24 10:45
偷懒的阿贤
阅读(4)
推荐(0)
使用 Delegate(委托)和 MulticastDelegate(多播委托)实现事件监听
摘要:实现方式:使用 Delegate(委托)和 MulticastDelegate(多播委托)实现事件监听。 应用场景: UI 更新:角色血量变化时触发 HUD 更新。 成就系统:监听玩家击杀事件并统计成就进度。 优势:解耦事件发布者与订阅者,支持多对多通信 。
阅读全文
posted @
2025-10-24 10:44
偷懒的阿贤
阅读(4)
推荐(0)
1基础的UActorComponent基类实现功能模块化
摘要:组件模式(Component Pattern) 实现方式:通过 UActorComponent基类实现功能模块化,例如 USceneComponent(场景组件)、UStaticMeshComponent(静态网格组件)。 应用场景: 角色能力系统:动态添加移动、技能、背包等组件
阅读全文
posted @
2025-10-24 10:09
偷懒的阿贤
阅读(4)
推荐(0)
网络同步预测-Prediction
摘要:预测(Prediction) 是解决网络延迟问题、提升玩家操作流畅度的核心机制 客户端接收玩家输入玩家操作(如 WASD 移动、跳跃)被捕获为输入事件(FInputActionValue)。客户端本地预测执行客户端不等服务器响应,直接基于输入在本地模拟角色行为(如移动、动画播放),并立即更新画面。此
阅读全文
posted @
2025-09-15 22:28
偷懒的阿贤
阅读(21)
推荐(0)
如果远程玩家过早结束异步任务,并且具有该集的任务仍在运行,则该任务被杀死-SetWaitingOnRemotePlayerData()
摘要:SetWaitingOnRemotePlayerData主要用于控制游戏模式是否等待远程玩家(通常是网络多人游戏中的客户端)的数据加载完成。 调用时,可以直接杀死该使用数据的任务
阅读全文
posted @
2025-09-15 22:01
偷懒的阿贤
阅读(3)
推荐(0)
确定调用 TargetData是否已发送-CallReplicatedTargetDataDelegatesIfSet()
摘要:example: const bool bCalledDelegate = AbilitySystemComponent.Get()->CallReplicatedTargetDataDelegatesIfSet(SpecHandle, ActivationPredictionKey);if (!b
阅读全文
posted @
2025-09-15 21:57
偷懒的阿贤
阅读(5)
推荐(0)
用于在能力(Ability)成功获取目标数据(Target Data)后触发回调-AbilityTargetDataSetDelegate
摘要:主要作用当玩家或 AI 通过能力进行目标选择(例如点击地面、选择敌人等)并确认目标后,AbilityTargetDataSetDelegate 会被触发,将收集到的目标数据(FGameplayAbilityTargetDataHandle)传递给绑定的函数,以便能力执行具体的效果(如伤害、治疗、生成
阅读全文
posted @
2025-09-15 21:50
偷懒的阿贤
阅读(8)
推荐(0)
控制能力任务(Ability Task)是否应该广播其委托(Delegates)-ShouldBroadcastAbilityTaskDelegates ()
摘要:ShouldBroadcastAbilityTaskDelegates 是 UAbilityTask 类中的一个虚函数,主要用于控制能力任务(Ability Task)是否应该广播其委托(Delegates)。该函数的默认实现返回 true,表示能力任务会正常广播委托。在某些特殊情况下,你可能需要重
阅读全文
posted @
2025-09-15 21:40
偷懒的阿贤
阅读(3)
推荐(0)
将目标数据复制到服务器-ServerSetReplicatedTargetData()
摘要:ServerSetReplicatedTargetData 通常是一个自定义的服务器端 RPC(远程过程调用)函数,用于将目标数据(如瞄准目标、交互目标等)从客户端发送到服务器,并让服务器更新相应的复制变量,以便在多台客户端之间同步该数据。
阅读全文
posted @
2025-09-15 21:38
偷懒的阿贤
阅读(6)
推荐(0)
GAS中,负责封装技能所影响的目标数据(如 Actor、位置、碰撞结果等)-FGameplayAbilityTargetData
摘要:example://FGameplayAbilityTargetData_SingleTargetHit 继承自FGameplayAbilityTargetData FGameplayAbilityTargetData_SingleTargetHit 是用于表示单一目标命中信息的目标数据结构,常用于
阅读全文
posted @
2025-09-15 21:35
偷懒的阿贤
阅读(9)
推荐(0)
创建预测窗口-ScopedPredictionWindow();
摘要:ScopedPredictionWindow 是一个与网络预测(Network Prediction)相关的工具类,主要用于在多人游戏中管理预测窗口的生命周期,确保客户端预测和服务器验证的一致性。 网络预测上下文管理:在客户端预测期间,ScopedPredictionWindow 会创建一个临时的
阅读全文
posted @
2025-09-15 21:22
偷懒的阿贤
阅读(4)
推荐(0)