对象池 (Object Pool)

频繁创建/销毁GameObject会造成GC卡顿。对象池预分配并回收对象,移动端优化的基本功。子弹、粒子、敌人——池化它们。

对象池是一种预分配+回收的设计模式,专门解决「频繁创建/销毁对象导致 GC 卡顿」的问题。工作原理:游戏启动时预创建一批对象(如 100 颗子弹),需要时从池中取出激活,用完后放回池中而非 Destroy。这样整个游戏过程中不会产生新的内存分配。

哪些对象适合池化?子弹、粒子特效、敌人、道具——任何频繁产生和销毁的东西。Unity 中每次 Instantiate 和 Destroy 都会产生 GC 分配,移动端(特别是低端 Android 设备)对 GC 卡顿非常敏感。

实现要点:池中维护两个列表——active(使用中)和 inactive(待用)。Get() 从 inactive 取出并激活,Return() 将对象停用并放回。注意在对象归还时重置所有状态(位置、旋转、血量等),否则下次取出时会有残留数据。

💡 微信搜索「别装没看见」小程序,44+ 开发技巧随时翻阅