Unity框架之缓存池模块
Unity框架之缓存池模块
理理如今的Unity提供官方写好的缓存池,但我还是打算讲讲自定义缓存池怎么写。
缓存池用途
在射击游戏中,游戏中存在着频繁的子弹创建和销毁工作。如果内存大量频繁地创建和销毁物体,势必会带来很明显的卡顿和性能开销。游戏开发者思考,我是不是可以重复利用固定几个物体、减少内存浪费和性能开销?于是有了缓存池。思路
以射击游戏为例,先去思考怎么实现子弹缓存效果,我的想法是,场上能看见的子弹也就五、六个,射出去的子弹超出玩家视野后、进行重复利用。于是分类:子弹类——子弹1、子弹2、子弹3、子弹4... 然而缓存池不一定只有子弹类,可能还有炮弹类、垃圾类等等,最后划分大概是这样的一张图表:子弹类 | 炮弹类 | 垃圾类 | ... |
子弹二 | 炮弹二 | 垃圾二 | ... |
子弹三 | 炮弹三 | 垃圾三 | ... |
这就类似于我们的衣柜,衣柜里有不同的抽屉,每个抽屉里放着不同的衣服,于是联想到字典和List,用Dictionary<string,List
评论
匿名评论隐私政策