1. 将受击也看作一个技能?
角色的受击和角色的攻击一样,其本质在于:在满足某种情况的条件下,播放一段特定的动画(也存在打断的情况)。所以重点在于这个受击的技能如何去触发。
受击GA的简单实现:
其中OnHitMontages
存储了所有可能的受击动画:
触发由GameplayEvent
来进行控制:
2. 信息在GA之间的传递
上面基本实现了受击的技能,后面需要思考的就是如何去触发这个技能。
一般来说,受击GA需要在攻击者武器的碰撞检测到命中时进行触发,直接进入攻击GA的基类,在伤害触发的地方补充事件的发送:
发送的EventTag
具体来说就是砍中那一瞬间的受击类型(正面受击,背面受击,侧面受击等,具体的计算方法有很多,这里选择了根据受击位置去进行计算):
简单效果演示:
基于GAS的简单受击实现