分类:虚幻 5
学习路径:由浅入深,按顺序阅读效果最好(共 100 篇)
-
61. AttributeSet 与聚合器:BaseValue/CurrentValue 为什么分开存
属性的 CurrentValue 不是一个字段而是每次查询时对全部生效 GE 的分层求值:BaseValue 管永久成长,聚合器管临时修正,分开存是为了让 GE 的撤销幂等且与施加顺序无关。
-
62. GameplayEffect 执行模型:三种 DurationPolicy 与 Stacking 的完整语义
Instant/Duration/Infinite 的差别不在"有没有时间"而在"留下什么记录":这篇讲 GE 的生命周期状态机、Stacking 的聚合规则、以及 Modifier 和 Execution 的选择边界。
-
63. GAS 的预测与复制:FPredictionKey 机制和属性同步怎么咬合
拆解 GAS 技能系统的预测键机制、预测回滚的实现方式,以及 AttributeSet 走 Push Model 的同步路径。
-
64. GameplayTag 体系:层级标签的匹配为什么这么快
FGameplayTag 本质是全局注册表里的一个 32 位索引:层级关系编译期固化成父链缓存,匹配是整数比较而非字符串遍历。这篇讲注册表结构、查询机制和项目实践的坑。
-
65. GameplayAbility 生命周期:Activate 到 EndAbility 与实例化策略
技能激活走 CanActivate → Commit → Activate 三段式,结束必须显式调 EndAbility;实例化策略决定技能有没有"成员变量可用",选错就是状态串线或内存暴涨。
-
66. AbilityTask 机制:异步事件怎么挂进技能生命周期
AbilityTask 是"激活期内的临时订阅者":把技能挂到外部事件上(Montage 窗口、目标数据回传)而不让技能永久存活。这篇讲实例归属、ShouldBroadcastAbilityTask 的三重门和预测键在任务链上的传播。
-
67. GameplayCue 派发机制:表现层事件与 Ability 的解耦
GameplayCue 如何从 GameplayTag 出发,经 GameplayCueManager 路由到 Static/Actor 两种表现载体,以及网络模式下本地预测的派发路径。
-
68. GAS 调试实战:showdebug abilitysystem 全参数走读
AbilitySystemDebugHUD 的分类体系、目标切换命令全集,以及用调试信息定位属性异常和 Cue 未触发的排查套路。
-
69. 网络复制的属性同步协议:FRepLayout 增量序列化全流程
从 DOREPLIFETIME 宏到 Bunch 打包,讲清 UE 属性复制的 ChangeList 增量协议与历史状态机制。
-
70. 复制架构总览:NetDriver/Connection/Channel 三层模型
一个对象从服务端内存到客户端内存要经过哪三层对象:NetDriver 管调度、Connection 管传输、Channel 管对象状态。
-
71. RPC 实现:UFUNCTION(Server/Client) 的调用打包与丢失语义
一次 RPC 从 ProcessEvent 到 bunch 发送的路径,reliable 队列的重传时机,以及参数序列化与 WithValidation 的细节。
-
72. DORM 休眠机制:让静态 actor 的 channel 闭嘴
EDormancy 五档语义的精确区分,DORM_DormantAll/Partial 的唤醒路径,以及 FlushNetDormancy 的正确用法。
-
73. 条件复制与 COND_* 标志位全集:只给该看的人发
COND_* 每个标志位的精确判定逻辑、RepNotify 的服务端/客户端两侧语义差,以及条件过滤在 RepLayout 里的实现位置。
-
74. Push Model 复制:从轮询脏标记到主动推送
Push Model 的脏位图机制、IRepChangedPropertyTracker 的接入方式,以及"忘了 Mark 就静默不同步"这一类 bug 的排查。
-
75. ReplicationGraph:按空间分桶缓存的相关性计算
ReplicationGraph 的节点缓存模型:相关性从每 tick 每连接全量遍历改为空间分桶 + 增量列表收集。
-
76. Iris 复制系统:UE5.3 实验性新协议的架构思路
Iris 用 NetRefHandle 和复制片段(Replication Fragment)重构对象模型,协议层改成 tokenized 状态同步,它到底解决了老系统的什么痛。
-
77. CharacterMovement 客户端预测:SavedMove 与服务器校正回放
从 FSavedMove_Character 的打包格式到校正后的未确认移动回放,讲清"为什么会被拽"以及把校正做顺的几个旋钮。
-
78. 复制带宽优化实战:NetUpdateFrequency、量化与热点定位
把带宽当成预算来管:频率、量化、休眠三个杠杆各能省多少,配合 stat net 和 Network Profiler 把花钱的 actor 揪出来。
-
79. 资产加载机制:FPackageIndex 与 Linker 的解析链路
一个软引用从字符串到 UObject* 的完整路径:Package 加载、Linker 建表、FPackageIndex 解析 Import/Export 的过程。
-
80. IoStore 与 Cook 管线:.utoc/.ucas 容器格式和 Zen Server 的协作
讲清 UE5 Cook 后资产怎么进 IoStore 容器、Zen Server 在其中扮演的角色,以及补丁 diff 的数据来源。