项目 github地址
打开项目选GameLauncher场景,直接启动游戏。我用的是 Unity 2021.3.6f1 版本。但应该是2017之后的都支持,没有实测过。
参考
GameFramework框架详解之 ObejctPool对象池模块
老规矩,先看上面这篇文章,掌握大致的原理。
简单总结一下
Unity的对象都是消耗比较大的,涉及到对应美术资源的加载,如果说这些个对象需要频繁的产生和销毁,那就要考虑是否能够建立对象池,用的时候拿出来,设置状态,用完了放回去,重置状态。这个时候就要用到 这个ObejectPool了。
二次封装做了什么
其实就按一般的使用习惯,简单封装了三个类,方便使用。
使用
- 把需要应用对象池的Class实现ObjectItem的接口方法。
- 在合适的地方调用 ObjectPoolMgr 的InitPool(int poolSize) 方法进行对象池的初始化。
- 业务层代码调用 ObjectPoolMgr 的 Spawn() 方法获取对象,用完之后调用 Unspawn(ObjectItem objItem) 方法归还对象。
测试
参考 # GameFramework 二次封装之 启动测试流程,然后在合适的地方调用TestObjectPool的test方法和check方法就可以进行测试了。怎么使用也可以参考这里。