我目前正在开发一个游戏。其中将会有相当多的不同AI,每个敌人都对应一个。
我应该如何实现这个目标?我应该创建一个基类,然后为每种类型的AI都派生出一个类吗?或者我直接创建一个包含所有AI的大类,并在一个选择语句中处理它们?或者还有其他的选择?
我正在使用Unity3d和C#来实现这个。
谢谢!
回答:
嗯,我想这取决于情况,
有很多方法可以做到这一点。
1) 经典的OOP(面向对象编程),你可以创建一个详细的类结构,从AI接口派生,然后从那里开始构建你的类层次结构。
2) 你可以使用面向组件的设计,然后创建一个AI组件,可以使用不同的更小的组件来初始化和进一步扩展它。
3) 你可以采用脚本编写方式,在你的“引擎”之外编写AI逻辑,这样做的好处是,它将核心引擎功能和你的特定游戏逻辑分离开来。
在我看来,这确实取决于你的特定需求,我经常混合使用1 && 3
,但我认为你可以使用1 || 2 || 3
,它们并非完全互斥。
我认为你应该考虑的另一件事是你的角色控制系统以及你是如何实现它的,角色控制系统将直接影响你如何实现你的AI系统架构。
祝你好运:)