AI角色通过感知系统获取信息之后要进行处理,并决定下一步将要执行的行为,这就是决策层需要做的工作。现在比较流行的自主决策系统主要有两种:有限状态机和行为树。
有限状态机(FSM):
由一组状态(包括一个初始状态)、输入和状态转换函数组成。什么是状态呢?简单来说,就是不同状态对应不同行为。它是由游戏设计者事先设定的,比如一个具有情绪的AI,高兴时会哈哈大笑,伤心时会哭。需要注意的是:有限状态机是AI系统里最简单的,也是最有效的,最常用的;当某些条件发生时,状态机会从当前状态转换为其他状态;表示有限状态机最直接的方法是FSM图。
不太清楚unity从那个版本开始使用类似虚幻4蓝图的动画状态机来定义玩家的行为。这与有限状态机的做法类似,实现有限状态机的方法有两种:Switch语句,FSM框架 。
Switch语句: 利用switch...case...语句可以实现,这个很简单也很好理解。
FSM框架,在这种框架中,每种状态都有自己的字典,比如说发现玩家是输入,输出状态就是追逐,再比如生命值为0,输出状态就是死亡。每一个状态都是一个状态类,而FSM还有一个重要的类就是AdvancedFSM类,它负责来管理这些状态类。还有一个重要的类就是FSMState类,它是所有AI状态的基类。
行为树:
前面说到有限状态机是用来处理简