前言
最近这段时间比较忙,所以断更了两个星期。现在终于有时间坐下来继续总结MVC剩下的部分了。这个对象池就是我的demo的UI框架中最后一个大的模块了,当然,UI框架还有很多其他的东西可以讨论,不过我暂时还没有在demo框架中加入,等到后续慢慢扩展之后,再来继续补充吧。
对象池思想和介绍
对象池的思想其实不难理解,本质上是一种复用的思想。在同一个类型的物体或者其他东西,需要大量创建和销毁的时候,会对性能造成一定的负担,那么我们可以通过创建对象池的方式,在需要销毁时,把对象放入对象池,那么在下次创建时,也不需要重新创建,只需要从对象池中获取即可。而在游戏开发中,频繁创建和销毁Gameobject,会带来一定的消耗,所以使用对象池,对性能有一定的提升。
对象池具体创建和使用
现在,我们对于对象池有了一个基本的了解,那么就可以考虑,用什么样的方式来实现对象池。
对象池的创建
回顾一下刚刚我们讨论的内容,我们是在对同一种类型的物体大量创建销毁,才考虑使用对象池。其实在这个思路里,我们已经大致确定了我们需要用到的数据结构了,实际上就是一个声明了类型的列表。再小小的扩展一下,一个列表我们只能维护一种类型,如果我们需要维护多种类型,那我们就可以用字典了,key值是用于查找到对象类型的键,value则是该类型的对象池。并且为了方便存取,对象池我使用了Queue队列。