有限状态机:
①:最简单的有限状态机实现是在类似update的方法中调用switch方法,判断状态,调用不同的方法,在方法中切换状态.
②:复杂的有限状态机实现,是有一个FSM虚类,生成一个继承自FSM的子类,将一个状态封装成为一个类,把这些类装载到继承自FSM的子类的属性(一个容器)里面,进行灵活的状态类调用.状态有初始状态,删除状态,从任意状态切换成为其他状态,通过条件判断转换成为其他状态.有时候也将状态和状态之间的切换关系用属性(一个容器)装载起来,进行灵活的调用.
随机和概率
击中概率(命中率),损害概率(是否受伤,装备损坏),性格概率(决定行为),角色能力(使用技能的成功率),状态转移,适应力 - 游戏动态人工智能.等等
感知系统
①根据碰撞盒/碰撞机(collider)(ps吐槽:有些人竟然不知道碰撞盒的意思,简直有杀人的心了.)进行感知.一部分感知,给原有物体添加一个子物体,这个子物体的形状就是不规则的部分(需要美术单独做出来),给这个不规则的部分添加碰撞盒,就成为这个物体的部分感知了,如果一个物体需要在某个点触发某件事,将碰撞盒多添加几个,摆放合理的位置进行操作.
②另外一种就是根据距离,某个点,某个向量进行判断,位移,旋转,缩放等操作,超过,小于,等于多少距离时候,做什么动作.
群体行为
主要是flocking算法,一个领头的,后面跟一群物体,进行徘徊
避让障碍物
https://www.jianshu.com/p/370f3d751b27
寻路算法
① https://www.jianshu.com/p/5557501295ca
② NAV Mesh
路径追踪
在寻路算法中,起始点到目标点中间一段一段的去追踪,不是直接从起始点到目标点追踪.
ps:有待以后补充,欢迎在下面评论常用智能算法.