自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 UObject创建系统深度分析

工厂模式:StaticConstructObject_Internal作为对象工厂建造者模式:FObjectInitializer作为参数建造器策略模式:多种内存分配策略观察者模式:对象创建事件广播。

2026-01-23 17:20:36 543

原创 Unreal Engine UObject 注册机制

本文档详细说明了 Unreal Engine 中 UObject 对象如何注册到全局对象数组 GUObjectArray 的核心机制。这是 Unreal 垃圾回收和对象生命周期管理的基础,理解此流程对于掌握 Unreal 内存管理和对象系统至关重要。所有 UObject 实例都由全局数组统一管理线性数组提供了最佳的遍历性能精心设计的锁机制支持多线程对象创建索引重用、紧凑存储和分块数组优化内存使用监听器系统和远程对象支持。

2026-01-22 01:17:44 567

原创 UE5 AI行为树源码解析(Composites)

的核心组件,常用于决策逻辑如:“优先攻击,如果不能攻击就移动,如果都不能就待命”。这种设计模式使得 Selector 成为行为树中实现。的复杂AI场景,如边移动边搜索、边攻击边播放特效等。SimpleParallel 适用于需要。SimpleParallel 节点允许。Selector 节点按照。Sequence 节点按照。

2025-11-05 14:01:32 1115 5

原创 AbilitySystemComponent 源码解析(二)

具体例子说明:1. 组件生命周期场景2. DestroyActiveState() 的详细作用3. 实际游戏中的应用场景4. 内存管理和资源清理5. 网络复制的清理6. 与BeginDestroy的配合7. 错误处理和健壮性这个函数虽然代码简单,但在Ability System Component的生命周期管理中起着至关重要的作用。它确保当组件不再需要时,所有相关的资源、技能、效果和网络连接都被正确清理,防止内存泄漏、网络问题和状态残留。这对于游戏的稳定性和性能非常重要,特别是

2025-10-13 14:07:18 448

原创 AbilitySystemComponent 源码解析(一)

具体例子说明:1. 网络同步例子:2. 技能激活控制例子:3. GameplayTag系统例子:4. 技能执行锁定例子:这个构造函数主要初始化了Ability System的核心状态和配置,为后续的技能管理、效果应用、网络同步等功能奠定了基础。具体例子说明:1. 定义属性集类2. 创建数据表在编辑器中创建DataTable,包含属性初始值:4. 运行时效果初始化后:- 角色获得基础属性值- Ability System可以基于这些属性进行计算- Gameplay Eff

2025-10-12 16:39:12 785

原创 AbilitySystemComponent_Abilities源码解析(一)

这个函数是GAS系统中Actor身份变化的核心处理点,确保当控制权或物理表现实体发生变化时,所有能力、效果和视觉表现都能正确迁移到新的Actor上,维持游戏状态的连贯性和正确性。这个函数是GAS系统在网络游戏中保持同步的关键机制,确保当控制权或Avatar在网络中发生变化时,所有客户端都能正确更新其本地状态,维持游戏的连贯性和一致性。这种设计使得属性系统既能够处理静态的属性值,也能够处理动态的、随时间变化的属性逻辑,为复杂的游戏机制提供了强大的支持。能够优雅地关闭,不会留下任何残留的效果或资源。

2025-10-10 20:15:25 919

原创 UE5 GAS GameAbility源码解析 EndAbility

用于需要网络同步的重要能力结束:用于本地化的、不需要同步的能力结束正确选择使用哪个函数对于多人游戏的网络同步和性能优化至关重要。

2025-10-09 15:48:22 794 1

原创 UE5 GAS GameAbility源码解析 CancelAbility

1.可取消检查→ 2.范围锁检查→ 3.网络同步→ 4. 取消事件通知→ 5.正式结束能力这个设计确保了能力取消操作的安全性、网络同步性和可扩展性。

2025-10-04 04:20:06 1042

原创 UE5 GAS GameAbility源码解析 ActivateAbility

→→负责状态设置、网络同步、标签管理根据能力类型调用具体的激活逻辑整个流程确保了能力的正确初始化、网络同步和资源管理。

2025-10-02 02:13:28 924

原创 UE5 GAS GameAbility源码解析 CanActivateAbility

/ ... 日志记录和标签处理作用:调用蓝图层的自定义检查逻辑允许设计师在蓝图中实现复杂的激活条件可以返回详细的失败原因标签例子只能在白天使用的技能需要特定装备才能使用的能力基于地形或位置的条件检查这个函数是一个综合性的能力激活条件检查器基础存在性→ 2.全局状态→ 3.能力状态→ 4.资源条件→ 5.标签系统→ 6.输入系统→ 7.自定义逻辑性能优化:早期失败避免不必要的计算模块化:每个检查环节独立且可扩展调试友好:详细的日志记录帮助排查问题灵活性:支持蓝图自定义扩展。

2025-09-30 15:31:01 762

原创 Unreal Engine GameplayTag匹配功能详解

层级匹配:用于检查标签之间的父子关系精确匹配:用于检查完全相同的标签性能优化:通过标签节点和容器缓存提高匹配效率安全校验:确保只使用已注册的标签这种设计使得 GameplayTag 系统非常适合于游戏中的状态管理、伤害类型分类、技能系统等需要灵活层级关系的场景。

2025-09-28 14:35:04 557 1

原创 UE5 GAS AbilitySystemComponent源码解析

是一个高度智能的路由函数。基本检查: 能力是否存在且可用?角色信息是否有效?→ 如果否,失败。网络权限检查: 当前机器对这个角色有控制权吗?→ 如果没有(是 SimulatedProxy),失败。能力执行策略路由情况A(本地能力 + 非本地调用者): 转发请求到正确的客户端。情况B(服务器能力 + 非服务器调用者): 在客户端预测检查,然后转发请求到服务器。情况C(调用者有权限): 直接执行。

2025-09-26 14:05:55 1157 1

原创 UE5 GAS 预测框架解析

预测键匹配:客户端和服务器使用相同的预测键来标识相关操作作用域管理:通过FScopedPredictionWindow确保预测键的正确传播委托系统:使用委托来处理预测成功/失败的回调Delta预测:属性预测基于差值而非绝对值效果转换:瞬时效果在预测时转换为持续效果以便回滚选择性复制:预测键只复制给相关的客户端这个系统解决了网络游戏中的核心问题:让客户端能够预先执行操作,同时在服务器验证后能够正确协调客户端和服务器状态,提供流畅的玩家体验。

2025-09-24 14:21:40 716 1

原创 UE5GAS GameAbility源码解析 CommitAbility

对于“火球术”这个技能,尝试提交:前摇动画结束,准备发射火球。最终检查:检查魔法值是否 >= 25?身上是否有“沉默”等阻止性标签?→如果否,失败返回,什么都不发生。执行消耗魔法值属性被减去 25,5秒冷却计时开始。蓝图事件:播放一个“法力消耗”的特殊音效。广播事件:UI 系统收到通知,立即更新魔法值显示。返回true,后续的技能逻辑(如生成火球投射物)继续执行。是 GAS 中保证状态同步和防止作弊的关键环节。解决时序问题:它解决了从技能激活 () 到资源消耗 (Commit) 之间的时间差。

2025-09-23 20:51:18 1163

原创 UE5 GAS 技能系统解析:EGameplayAbilityTriggerSource 枚举详解

在 Unreal Engine 5 (UE5) 的游戏开发中,是一个强大而复杂的框架,用于构建诸如技能、攻击、被动效果等游戏玩法功能。一个核心的设计理念是事件驱动和状态驱动,即技能并非总是通过直接的函数调用激活,而是通过响应游戏内的各种变化来触发。枚举正是定义技能如何被触发这一规则的关键组成部分。它决定了监听何种游戏信号以及如何响应该信号。本文将结合具体实例,深入剖析这一枚举的每种类型及其应用场景。特性触发机制主动发送事件标签被添加的瞬间标签存在的期间数据传递支持(通过不支持不支持典型用例。

2025-09-16 12:42:44 979

原创 深入浅出:UE4类型系统完整构建过程详解

UE4的类型系统是一个复杂但设计精巧的架构,它通过静态代码生成和运行时构建的完美配合,实现了强大的反射功能。理解这个过程不仅有助于解决开发中的问题,也能让你更好地利用UE4的各种高级特性。就像建造一栋大楼需要经过设计、备料、框架、装修、验收等多个阶段,UE4类型系统的构建也是一个多阶段、精细化的过程。每个阶段都有其特定的职责,共同协作完成从源代码到运行时对象的转换。

2025-09-14 10:17:16 785

原创 C++全局变量初始化流程详解

全局变量(包括static全局变量)的内存分配和初始化工作,是在main函数开始执行之前,由编译器、链接器和运行时库协同合作自动完成的。预处理 (Preprocessing)处理内容: 处理以**#开头的预编译指令,如#include**(头文件展开)、#define(宏替换)、#ifdef(条件编译)等。输出: 一个纯粹的**.i或.ii**文本文件,不含任何预编译指令。编译 (Compilation)处理内容: 将预处理后的源代码进行词法分析、语法分析、语义分析、优化,最终。

2025-09-08 00:06:11 991

原创 UE4/UE5反射系统动态注册机制解析

你可以把整个系统想象成一个不断扩大的拼图游戏静态收集:每个模块(DLL)就像一个袋子,里面装着一堆无序的拼图碎片(类信息)。每个袋子自己不知道整个图画的全貌。动态注册打开袋子:每当一个DLL被加(),就把这个袋子里的所有碎片倒在一张大桌子(全局链表)上。拼图:系统尝试从桌上的碎片中拼出完整的图。边缘碎片(父类、依赖类)必须先拼好,才能拼中间的碎片(子类)。等待:如果发现某块碎片(如)缺了它依赖的边缘碎片(ACharacter),就把它暂时放回桌上不动。新袋子:当新的DLL(如Engine.dll。

2025-09-07 17:55:30 1349 2

原创 Unreal Engine 中 GameplayCue 的自动关联机制:插件资源路径配置指南

在 Unreal Engine 的 Gameplay Ability System (GAS) 中,GameplayCue 是处理技能特效、音效和视觉反馈的核心机制。本文将深入解析如何通过自动关联机制将 GameplayCue 资源与标签绑定,特别是当资源位于插件中的配置方法。实现资源与标签的自动关联维护跨项目的特效资产库构建模块化的技能系统架构使用具体资源路径而非插件根目录修改路径后需要重启或刷新资源库正确配置后,插件中的 GameplayCue 资源即可无缝集成到 GAS 系统中,通过。

2025-07-02 13:50:46 832

原创 UE5 开发遇到的bug整理

2025-06-23 18:48:12 429

原创 Unreal Engine附着组件调用区别

在 Unreal Engine 中,与均通过底层调用实现附着,关键区别在于父组件的指定方式。

2025-06-23 18:41:07 548

原创 UE5蓝图中使用TSoftObjectPtr<UTexture2D>加载图片的正确方法

在UE5中,TSoftObjectPtr<UTexture2D>为软引用,资源不会自动加载。直接用于蓝图Image控件时,常因资源未加载导致图片不显示。使用TSoftObjectPtr<UTexture2D>时,务必通过异步加载确保资源可用,再设置到UI控件。这样可避免图片不显示等问题,提升用户体验。

2025-06-20 13:03:07 587

原创 UE5网络同步机制详解

在UE5中,函数是网络同步机制的核心组成部分,用于声明哪些变量需要在服务器和客户端之间自动同步。是UE5网络同步的基石,通过注册变量并定义复制规则,确保服务器与客户端间的数据一致性。合理使用复制条件和OnRep函数,既能实现功能,又能优化网络性能。

2025-04-11 01:02:53 1465

原创 UE5 Lyra Experience控件模式详解

在UE5的Lyra示例项目中,Experience(游戏体验)是一种核心的控件模式,用于动态配置和管理游戏玩法模块。它通过数据资产的形式,将关卡逻辑、角色配置、插件加载等功能模块化,从而实现不同游戏模式的灵活切换。Experience是一个数据资产(),用于定义特定游戏模式所需的全部配置。模块化配置Experience包含需激活的Game Feature插件列表默认角色数据(Pawn Data)初始化时需执行的Action集合等。动态加载:在切换关卡或模式时,通过加载不同的Experience资产。

2025-04-11 00:54:08 1458

原创 UE5 RPC调用示例详解

在UE5中,RPC(远程过程调用)是实现多人游戏逻辑同步的核心机制。以下通过一个玩家跳跃的示例,详细说明如何使用三种RPC类型(Server、Client、Multicast)。Server RPC:客户端发起请求,服务器处理核心逻辑。:服务器向全体客户端广播同步。验证函数:防止客户端发送非法请求(如作弊)。权限控制:确保逻辑在正确的端执行。通过合理使用RPC,可以高效实现多人游戏的交互同步,同时保障游戏的安全性与流畅性。

2025-04-10 20:56:14 2608

原创 虚幻引擎UActorComponent的TickComponent详解

在虚幻引擎(Unreal Engine)中,是 Actor 组件的基类,用于实现可复用的功能模块。是组件中用于每帧更新逻辑的核心函数,类似于 Actor 的Tick函数,但需要显式启用。通过合理使用,可以实现高效的动态行为,同时保持代码的模块化和可维护性。

2025-04-08 15:13:20 1310

原创 UE5中TSoftObjectPtr的使用详解

在UE5中,是一种重要的资源管理工具,它允许开发者以“软引用”的方式引用资源(如纹理、模型、蓝图等),而不会强制资源立即加载到内存中。这种机制特别适用于需要动态加载资源的场景,例如开放世界中的流送系统或按需加载资源。是UE5中实现资源动态加载的核心工具之一,合理使用可显著优化内存占用和启动时间。结合AsyncLoad和,能够高效管理大规模资源,特别适合开放世界、动态内容加载等场景。

2025-04-06 04:16:12 1853

原创 UE中DataTable创建问题解决方案

想在UE的编辑器中以FInventoryItemData为表头创建DataTable时找不到FInventoryItemData是怎么回事?在 Unreal Engine 中创建 DataTable 时无法找到。

2025-04-06 04:04:38 413

原创 Unreal Engine 高效数组复制用法详解

在 Unreal Engine 中,和是用于高效网络复制数组数据的工具类,尤其在需要频繁同步动态数组时(如背包系统、技能列表等场景)。以下通过一个背包物品同步的示例详细说明它们的用法。提示:以下是本篇文章正文内容,下面案例可供参考// 继承自 FFastArraySerializerItemUSTRUCT()// 物品唯一ID// 数量// 耐久度// 网络复制标识符(必须实现)// 继承自 FFastArraySerializerUSTRUCT()// 物品数组。

2025-04-03 13:24:58 1555

原创 UE Lyra示例LyraExperienceActionSet模块解析

在 ​UE5 Lyra 示例项目中,LyraExperienceActionSet 是一个关键的数据驱动模块,主要用于**动态管理游戏体验的输入配置(Input Mapping)和技能系统(Ability System)**​。​1.解耦设计输入、技能、UI 等系统通过 ActionSet 分离,避免硬编码依赖。​2.动态资源管理支持运行时加载/卸载,适用于开放世界或模块化游戏。​3.协作友好策划人员可通过数据资产配置,无需修改代码。

2025-04-02 12:10:30 1164

原创 UE Lyra示例LyraExperienceDefinition模块解析

在UE5的Lyra示例项目中,LyraExperienceDefinition模块是一个核心的游戏体验配置资产总结来看,LyraExperienceDefinition是Lyra框架中连接引擎底层与游戏逻辑的枢纽,通过数据驱动和模块化设计,实现了高效、灵活的游戏模式管理。其核心价值在于将传统硬编码的GameMode逻辑转化为可配置、可扩展的资源,极大提升了项目的可维护性和动态扩展能力。

2025-04-02 12:03:48 990

原创 UE Lyra示例LyraPawnData模块解析

在Unreal Engine的Lyra示例项目中,​。

2025-04-02 11:57:12 577

原创 UE Lyra示例LyraAbilityTagRelationshipMapping模块解析

在UE Lyra示例项目中,模块是游戏技能系统(Gameplay Ability System,简称GAS)的关键组件,主要作用是通过标签(Tags)的配置管理技能之间的逻辑关系,确保技能激活、互斥、依赖等行为的正确性。模块通过标签的规则化配置,实现了技能系统的动态逻辑控制,是Lyra示例中GAS复杂交互的核心枢纽。开发者可通过修改其数据资产(Data Asset)快速调整技能行为,而无需深入修改底层代码。

2025-04-02 11:51:21 658

原创 UE5中UBlueprintFunctionLibrary类详解

在 Unreal Engine 5(UE5)中,是一个用于在蓝图中暴露 C++ 静态函数的工具类。通过继承此类,开发者可以创建全局可访问的工具函数,让蓝图和 C++ 共享逻辑。

2025-03-07 04:36:29 1145

原创 UE5 AssetManager类使用详解

在 Unreal Engine 中,是资源管理的核心类,主要负责异步资源加载、卸载、主资源(Primary Assets)管理和资源审计等功能。在。

2025-03-07 02:36:16 1522

原创 UE中UGameplayTagsManager类详解

在Unreal Engine中,是管理的核心类,负责标签的注册、查询、层次结构管理和验证。Gameplay Tag 是一种分层标签系统(如或),广泛用于技能系统、状态管理、条件判断等场景。以下从功能、代码示例和实际应用三个方面详细说明。是管理系统的核心类,提供标签的注册、查询、层次化操作和验证功能。通过标签的层次结构,开发者可以高效实现状态管理、技能条件判断等复杂逻辑,是UE中Gameplay框架的重要组件。

2025-03-07 01:51:35 1019

原创 UE中UGameplayModMagnitudeCalculation接口详解

在虚幻引擎(Unreal Engine)的 Gameplay Ability System(GAS)中,UGameplayModMagnitudeCalculation 是用于动态计算 Gameplay Effect 的 Modifier 数值的核心类。通过继承该类并重写其关键接口,可以实现复杂的数值计算逻辑(如基于角色属性的动态加成)。

2025-03-05 05:58:55 1210

原创 UE GAS框架中GameplayEffect/Attribute Based Modifier详解

在虚幻引擎的框架中,当你在的Modifiers中使用时,意味着该修饰符(Modifier)的数值大小是基于某个属性(Attribute)的当前值或最大值动态计算的。这种机制常用于实现与角色属性动态绑定的效果,例如“基于智力值的技能伤害”或“基于目标最大生命值的治疗效果”。以下是提供了一种灵活的方式,将的数值与角色属性动态绑定。通过合理配置Snapshot和计算公式,可以实现复杂的游戏机制,如角色成长、环境交互和动态技能效果。

2025-03-05 03:33:49 1072

原创 C++函数参数传入指针与引用区别

在C++中,将指针或引用作为函数参数传递时,主要区别体现在语法、空值合法性、可修改性及安全性上。特性指针引用语法需取地址 (&) 和解引用 (*)直接使用变量名空值可为 nullptr必须绑定有效对象可修改目标可以重新指向其他地址绑定后不可更改安全性需手动检查空指针天然避免空值问题典型用途动态内存、可选参数必须有效参数、运算符重载根据需求选择:需空值或重定向时用指针;需安全简洁时用引用。

2025-03-02 03:12:51 400

原创 C++函数指针及其用途详解

在C++中,函数指针是一种指向函数而非数据的指针,允许通过指针间接调用函数。回调机制:将函数作为参数传递(如事件处理)。策略模式:运行时动态选择算法。函数表/跳转表:通过索引或键快速调用不同函数。兼容C代码:与C语言库交互时传递函数。STL算法:为泛型算法提供自定义行为(如排序规则)。插件系统:动态加载并调用函数。

2025-03-02 02:48:34 594

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除