38. 敌人的动画执行逻辑
本节目标
上节只是把逻辑写好了,为了让游戏看起来更好看,我们需要将敌人的动画也加上去
实现
动画状态机


敌人的状态比较简单,只有站立、加Buff、攻击、受伤、死亡这五种状态
各状态之间的转换关系如下
站立 -> 加 Buff

通过 skill 触发,立刻执行
因为是从 Any State 出来的,所以不需要 Can Transtion To Self
站立 -> 攻击

通过 attack 触发,立刻执行
因为是从 Any State 出发,所以不用勾选 Can Transtion To Self
站立 -> 受伤

通过 hit 触发,立刻执行
因为是从 Any State 出发,所以不用勾选 Can Transtion To Self
站立 -> 死亡

通过 isDead = true 触发,立刻执行
因为是从 Any State 出发,所以不用勾选 Can Transtion To Self
加 Buff -> 站立

完整播放完一次动画后执行
攻击 -> 站立

完整播放完一次动画后执行
受伤到站立

完整播放完一次动画后执行
通过代码播放加 Buff 和攻击动画



如上图所示,当敌人回合开始的时候,会判断一下执行的目标,如果是自己的话就执行 skill,如果是目标的话就执行 attack
这里使用协程来播放动画,原因是敌人动画需要播放到 60% 的时候才能显示实际扣血或者加的buff效果。又学到了一个新的协程等待的办法
通过代码播放受伤动画

通过代码播放死亡动画

修复伤害不太正确的问题
之前打出的伤害,没有考虑buff效果,需要修改下面的地方进行修正


浙公网安备 33010602011771号