网络知识 娱乐 UNITY性能优化丨对象池(Object Pooling)

UNITY性能优化丨对象池(Object Pooling)

哈喽大家好,你的橙哥突然出现~

本系列博客地址:传送门

在这里插入图片描述


一、对象池是存放的仓库

对象池这个名字听起来好像不明觉厉,其实就是需要反复创建和销毁的对象存储的地方。

下次用同样的东西时,往这里面取。类似于一个存放备用物质的仓库。

?对象池的优点:
它的好处就是避免了反复实例化个体的运算,能减少大量内存碎片。
同样的会减少GC的次数。

一般对象池都是一个全局性的通用脚本,可以采用单例模式来设计。


?对象池至少包含以下两个基本功能:

  • 从池中取出指定类型的对象
  • 回收各式各样的对象到池中


二、设计一个通用的对象池

对象池最常见的应用就是子弹的创建和销毁。下面我们来设计一个完整的对象池,
接着使用这个对象池,去存取子弹。

注意:RecycleObj方法将回收的对象放置在了MainCamera下,你可以更改此处代码,将回收的对象放置在你想要的物