Joker的ARPG开发笔记

Joker的ARPG开发笔记
理理最近一方面在学javaScript,一方面在运营萤光网站,一方面忙于学业,一方面在学Unity,每当晚上我就会去看Joker的ARPG游戏开发教程,其中有一些好的思路,我觉得可以记录一下。
之前我把鬼哥(up鬼鬼鬼ii)的ARPG课程看完了,再来看Joker的,对比一下有一些值得提的地方。
一、有限状态机控制玩家和敌人AI
之前看鬼哥的课,全程是用Animator窗口来控制角色状态,要进行复杂的连线。后来我看了Joker的教程,还有一个印度人复刻原神的教程,感觉他们在这点的做法要更好——完全利用有限状态机去控制角色状态,不管是玩家、还是敌人。
其实用不用Animator,都能实现相应的功能,没有哪个更好。Animator连线好处是便于理解、更直观,缺点是状态多起来就难以维护了;有限状态机优点是逻辑清晰,只需要考虑转换什么状态就可以了,本质上和Aniamtor窗口其实一模一样,缺点是难以理解。对初学者,我建议还是要用Animator窗口连线,便于理解;学一段时间后再试着去理解有限状态机的概念。
Joker的有限状态机,最开始我是根本看不懂,现在觉得他的有限状态机写的很好。我见过比较好的有两种有限状态机框架,第一种是up主打工人小祺的继承MonoBehaviour的有限状态机,配置了一个黑板,供我们配置参数;还有就是Joker的有限状态机了,不继承MonoBehaviou也很方便。
二、伤害检测
鬼哥的课针对的是拳打脚踢,在动画里加一个判断类事件,每次攻击时调用这个判断类函数,函数里进行检测:如果敌人与我的距离夹角合适,触发我们事先写好的Action,从而让敌人执行受伤逻辑。
Joker的课程是,专门做一个武器层,加两个动画事件,开始攻击和结束攻击,当开始攻击时启用武器碰撞体、写一个OnTriggerStay的函数,声明一个List