GameFramework 开发脚手架之 ObejctPool对象池模块

363 阅读1分钟

项目 github地址

打开项目选GameLauncher场景,直接启动游戏。我用的是 Unity 2021.3.6f1 版本。但应该是2017之后的都支持,没有实测过。

参考

GameFramework框架详解之 ObejctPool对象池模块

老规矩,先看上面这篇文章,掌握大致的原理。

简单总结一下

Unity的对象都是消耗比较大的,涉及到对应美术资源的加载,如果说这些个对象需要频繁的产生和销毁,那就要考虑是否能够建立对象池,用的时候拿出来,设置状态,用完了放回去,重置状态。这个时候就要用到 这个ObejectPool了。

二次封装做了什么

其实就按一般的使用习惯,简单封装了三个类,方便使用。 1698810539189.png

使用

  1. 把需要应用对象池的Class实现ObjectItem的接口方法。
  2. 在合适的地方调用 ObjectPoolMgr 的InitPool(int poolSize) 方法进行对象池的初始化。
  3. 业务层代码调用 ObjectPoolMgr 的 Spawn() 方法获取对象,用完之后调用 Unspawn(ObjectItem objItem) 方法归还对象。

测试

参考 # GameFramework 二次封装之 启动测试流程,然后在合适的地方调用TestObjectPool的test方法和check方法就可以进行测试了。怎么使用也可以参考这里。