文章目录
0.接上篇
上篇添加了鱼AI的速度控制器,本篇我们将继续丰富AI。
1.组合模式
得益于上篇的速度控制器,将速度控制从脚本中单独提出来,一方面,可以使得SpeedFlag只专注于处理速度,另一方面,FishAI代码的结构也清晰了很多。
此种方式,实际上是设计模式中,组合模式的应用。
组合模式中,将代码中,可以归为一类的功能都提出到一个单独的类里面,与调用者形成一个“has”的关系,即调用者“有”一个xx类。
比如我们现在用的Unity3D,各种Component实际上就是组合模式。
一说到面向对象编程,我们首先想到的是继承。然而,在游戏开发中,如果乱用继承,会让代码变成一锅八宝粥…
继承的深度不要超过3,最好是一层继承就可以了;能用组合模式,就用组合模式,尽量不用继承。
因此,在之后的功能开发中,我们尽量使用组合模式,简化FishAI的代码逻辑。
2.转向控制器
上一篇中,鱼的转向特别生硬。我们为转向加一个随机,看看效果。
我们将对转向的控制都放到转向控制器RotateFlag.cs中。
1.创建转向控制
在Scripts文件夹下新建RotateFlag.cs脚本。