05-Unity复刻的整体架构
上一章已经把一次 Ability 拆成输入请求、激活检查、Commit、Target Data、Effect 结算、取消与结束六个阶段。现在准备在 Unity 中落地时,最容易走偏的第一步,是打开 IDE 创建一组与 UE 同名的 C# 类:
04-一次Ability的完整执行链
玩家按下火球术快捷键,客户端立刻播了抬手动画,火球看着已经释放出来了——但服务器那边,可能发现施法者没有这个技能,可能 Mana 不够,可能冷却尚未结束,也可能客户端锁定的目标早已死亡。就算请求全部合法,后面还有投射物飞行、命中结算、持续灼烧、中途被打断和生命周期清理。
02-GAS的核心模型
上一章已经看到,火球术的问题不是“缺一个更大的技能基类”,而是同一个 Cast() 同时回答了太多不同的问题。团队开始接触 GAS 后,通常会遇到另一个误区:把 Ability、Effect、Tag 等术语记住,却仍然不知道一段新逻辑应该放在哪里。
01-从技能脚本到能力系统
技能系统最容易让人产生错误的安全感:单机原型里,按键、动画、投射物和伤害都能在一个 Cast() 方法中跑通,于是我们很自然地认为,剩下的工作只是继续往方法里加几个判断。
00-写在最前面的
这是我打算开的的一个新坑,一套从问题出发的连续教程。从一个逐步变复杂的火球术观察技能脚本为什么会失控出发,再拆解 Unreal Engine Gameplay Ability System(GAS)的模型,最后把这些语义映射成一套 Unity 方案。