有限状态机,目前有俩状态

状态基类; 初始化的时候,是传参赋值,状态机控制器

有一个,玩家状态基类:

玩家状态也有俩子类

状态也是对象池,统一管理

父类的,进入,退出,更新,仨虚函数

其中,退出的函数重写,只有移动的状态类,因为前面,它注册了走路声,相关的动画事件函数,退出的时候,需要移除一下动画事件

状态控制器逻辑

获取状态,也是从stateDic状态字典

切换状态的时候,就是退出当前状态,然后切换成,新状态即可

控制器停止工作: 使用了GetEnumerator遍历所有状态,进行退出

销毁动画控制器的话,也是统一对象池管理的

玩家控制脚本,对状态控制器,完成初始化,默认状态是Idle;

运行游戏,移动一下,就可以顺利构建出,完整的playable图例

动画过渡,如前所述,是用了协程

动画过渡的具体逻辑 修改权重即可,如果没有过渡时间,就直接硬切

当前游戏,都没有硬切,过渡时间设定为0.25

相机控制,用了这个常见插件

创建入口

默认相机,会自动加上,这个脚本; 简单修改一下参数

相机逻辑设置,跟随和看向

相机跟随鼠标移动

其他参数,也是摸索,参考设置一下即可