仗剑走天涯 发表于 2012-11-12 21:51

浅谈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、一定的随机性
打个比方,敌人在巡逻的时候,可以在一定范围内随机寻路。但是大方向还是根据寻路算法来的,这个可以增加游戏的趣味性。

先胡侃到这里吧,以后想到了再说

暴躁小强 发表于 2012-11-12 22:17

高手 路过看看{:5_435:}{:5_435:}

仗剑走天涯 发表于 2012-11-12 22:20

我不是高手,每个人都是我的老师。

5、刚才有想到一点,不过不是很重要
就是反馈系统
敌人可以根据你的应对,相应的做出不同的应对。这个比较抽象了,也可以归到“有限状态机”

zldarwin 发表于 2012-11-13 14:35

强烈支持楼主ing……

☆花谢蝶飞☆ 发表于 2012-11-13 15:05

看到这帖子真是高兴!

杨建辉 发表于 2012-11-17 23:54

学习了{:5_412:}

aaabbbsss12345 发表于 2014-5-27 11:25

学习了 谢谢   

davidfoxhu 发表于 2014-11-11 06:36

学习了 谢谢

yangzhen_010 发表于 2017-2-22 13:09

很不错

罗明工作 发表于 2017-2-22 13:09

顶顶多好
页: [1]
查看完整版本: 浅谈Unity3D中的AI