在游戏开发过程中,有时候需要频繁的创建相同的游戏物体(例如,子弹、炮弹等),刚开始学习游戏脚本编写时的做法是:反复的Instantiate去实例化游戏物体,当不需要时再Destory掉。然而这种做法是相当耗费资源的。当然,肯定有优化的方法,那就是我们接下来要讲的“对象池”。对象池,顾名思义就是有很多游戏对象的池子,它保存着当前不需要使用到但是却随时会被使用到的游戏对象。
对象池的结构:1、一个池子,用来存放我们的游戏物体 pool
2、一个可以在池子里取物体的公有的静态方法 GetObject
3、一个可以将使用完的物体放回池子的公有静态方法 ReturnObject
接下来就是对上面的三个结构的类型定义了:
1、由于在对象池中可能会有很多种类型的物体,而且每种类型的游戏物体又可能有多个,所以, 我们将pool的类型定义为Dictionary<string, ArrayList>,前面的string为物体的类型,后面的数