游戏里为了利用内存资源一般对象池是用的比较多 这里总结了两版对象池.
请结合范例工程阅读: GITHUB 地址
效果
简易弹道射击DEMO,弹道与目标均以用对象池处理
整体思路
对实例对象进行生命周期管理(GameObject显隐)
池对象的新增生命周期为 初始化(Init) , 生成(Spawn)与回收(Recycle)
静态预制件对象池
ID/池对象–池实例
针对提前定义好的预制件使用的对象池(建议与枚举绑定使用)
需要对预制件进行注册,使用Dictionary<T,ItemPoolInfo> 对所有注册的对象以及实例进行管理
ObjectPoolManager<T, Y>. Register(T identity, Y registerItem, int poolStartAmount); //注册
ObjectPoolManager<T, Y>.Spawn(T identity, Transform toTrans, Vector3 toPos, Quaternion rot); //生成
ObjectPoolManager<T, Y>.