公司动态
Unity 塔防实战(十):一发子弹怎样完成命中与伤害结算
上一篇让EDSkillBullet经过延迟命令、类型注册和异步特效加载,变成了正在飞行的SkillBullet。当追踪子弹到达目标、范围子弹找到怪物,或者碰撞子弹检测到敌人后,最终都会进入SkillBullet.hit()。但“命中”并不只是血量减去攻击力:它还包含闪避、暴击、防御、元素抗性、伤害增幅、Buff、伤害数字和多组事件。本文只回答一个核心问题:一次hit()怎样按照固定顺序完成伤害结算。MyFramework:https://github.com/ZHOURUIH/MyFramework塔防 Demo:https://github.com/ZHOURUIH/MyFramework_TDDemo一、不同轨迹最终共用同一个命中入口追踪、直线、弹射、连线和范围子弹寻找目标的方式不同,但找到目标后都调用基类的:protected void hit(CharacterGame target)因此具体子弹类只负责回答“打中了谁”,不重复实现暴击、防御、扣血和命中事件。公共伤害规则集中在