浅谈Unity3D中的AI
AI,个人感觉有几个部分组成1、寻路,这个是比较重要的
插件很多,我只用过SimplePath,相当强大,目测是用了A*算法。
跟A*相关的算法还有几个,但是A*是公认的效率最高的算法(就是在准确率和运算速度上权衡下来更好)
A*算法,大学课本、网上代码都已经很多了,移植一个过来基本就可以搞定所有的寻路算法了。
不过对我这种懒人来说,SimplePath还是挺好用的
2、有限状态机
这个也是必须的,好比FPS游戏里的敌人,在自己半径20米之外无人就进入Idle状态。检测到20米内有人,就进入FollowRun状态。进入15米就进入Shot状态。血为0,则进入Dead状态。当然有多少状态,状态间如何切换,全凭你自己的设计。可以用switch,if来切换,也可以用table来切换。有限状态机,有限的意思就是这个敌人的状态是有数的,可以预测的。
当然,你可以说有限状态机不够只能。你也可以设计一个会自我学习的AI(什么蚂蚁算法、神经元算法很多很多),没研究过就不说了。不过目前市面上的游戏,基本都是有限状态机的,只要你把可能的状态都考虑到了,一般就足够了。
3、对话系统
这个不用说了,会和你对话的机器人绝对是会让你感觉更真实的。这个做法很多,一般就是内置固定的几句。需要特定情况触发。当然这个要做好,也是无底的。比如网上很多的对话机器人。
4、一定的随机性
打个比方,敌人在巡逻的时候,可以在一定范围内随机寻路。但是大方向还是根据寻路算法来的,这个可以增加游戏的趣味性。
先胡侃到这里吧,以后想到了再说
高手 路过看看{:5_435:}{:5_435:} 我不是高手,每个人都是我的老师。
5、刚才有想到一点,不过不是很重要
就是反馈系统
敌人可以根据你的应对,相应的做出不同的应对。这个比较抽象了,也可以归到“有限状态机” 强烈支持楼主ing…… 看到这帖子真是高兴! 学习了{:5_412:} 学习了 谢谢 学习了 谢谢 很不错 顶顶多好
页:
[1]