一、Unity3D做一个手游怪物AI,需要掌握什么
1、 1。状态转换。例如被攻击后转向敌人,释放魔法后进去休息状态,敌人过于强大ai会逃跑,这些问题首先直观的使用if else语句,可以这样的ai通常非常难以写出来,而且ai的修改会很麻烦,这时候业内惯用“有限状态机”解决此问题。
2、 2。路径规划。怎样从A点到B点要绕过中间的障碍物,这需要算法解决,非常成熟的解决方案就是 A*寻路(A星寻路算法),这中算法适合解决固定障碍的路径规划,如绕过山,河,沟不可移动的障碍。另外点下更复杂的战术式寻路,如避开敌人火力区的路线,避开地面雷达的飞行路线等。
3、 3。避开障碍物体。其实这也属于“路径规划”类的问题,只不过此问题解决的是动态的障碍,和上面的第2点有非常大的区别。如20或者200个角色同时运行到一个目标,如无有效的算法让彼此以合适方式避开这个游戏效果是非常差的,常用的算法有如Flocking算法,用合力的方式计算朝向与速度,将角色分为三个基本的行为:聚集,分散,列队去解决,这一算法用的非常广;更加复杂的算法如RVO算法。
4、 4。一些移动行为算法。如:追赶,逃避,插入,避开墙等等。
5、再次点下开头:AI的实现是个非常复杂的过程,不止是算法上的,后期各项数值的调试迭代磨合是非常需要耐心的,以上4点是很基本需要掌握解决的方面。
© 版权声明
文章版权归作者所有,未经允许请勿转载。