上一集我们通过 泛型类代码 将WeaponController绑定好在双手武器上。
这次我们需要通过检测模型是否接触到含有WeaponController脚本的物体作出反馈。
打开BattleManager脚本,在OnTriggerEnter里加上:
然后在ActorManager脚本上也添加上同样的函数参数:
然后打开StateManager脚本,在里面添加isCounterBack的布尔值变量。
接着在Update函数里添加: isCounterBack = am.ac.CheckState("counterBack");
在ActorManager里的TryDoDamage函数,判断增加一个:假设StateManager(sm)检测到了盾反,那么就反馈一个对方破盾动画。
下面也写一个Stunned的函数,触发破盾动画作为测试盾反互动的代码逻辑。
为了测试,我将原先的isCounterBack设成默认为true。敌人WeaponController脚本绑定的物体只要接触到玩家就会出现破盾的效果。
测试完我们把原先的isCounterBack代码恢复。
然后要把CounterBack动画设置好动画时间轴事件,在动画的event里选好时间点设置事件帧,盾反有效帧和盾反无效帧。
将StateManager脚本的isCounterBack默认设置为false。
isCounterBack的代码都注释掉。
在ActorManager里写上:
设置完我们在WeaponManager脚本底下新建盾反同名的方法函数。