Unity简易对象池

废话不多说,直奔主题  以下内容如有不恰当的地方,欢迎指正

关于对象池有款插件 推荐博客 雨松MOMO http://www.xuanyusong.com/archives/2974

什么是对象池?对象池是用来干什么的?网上有很多解释,这里主要写一下自己的理解

对象池,简而言之,就是许多对象的池子,通过这个池子来达到一些对象的取放,何谓对象的取放在池子中就是打开一个游戏物体的打开关闭通过这个"SetActive() " API达到效果. 那么通过这些对象或者游戏物体的状态开关可以用来做些什么呢,作用是什么呢?

一 可以减少不必要的实例化与销毁就是"Instantiate()与Destroy()"的调用.减少内存上的资源浪费与GC的回收压力,比如在游戏中一些频繁使用的特效粒子,如果频繁使用Insatantiate与Destroy加上粒子数量的繁多极可能会造成游戏场景的崩溃与卡死.

二 使用的地方,很多 比如粒子特效,子弹 ,就是一些经常需要实例化与销毁的物体或组件或脚本 都可以使用. 下边开始写代码,比较简单,只能满足简单的理解与使用.


    Dictionary<string, GameObject> 
 

下边是池子的存取

里边还用到了单例,调用的话直接ObjPool.GetInstance().GetObj(name) 就可以

猜你喜欢

转载自blog.csdn.net/weixin_42475926/article/details/81941939