1.基础对象池
1.对象池基础概念
参考来源:http://blog.csdn.net/l773575310/article/details/71601460
2.飞机子弹对象池的简单脚本
3.发射子弹(Fire)使用对象池
4.子弹回收到对象池
2.背包装备对象池
参考来源:http://blog.csdn.net/yushengqi12345/article/details/51955175
3.Pool Manager 插件
下载地址:http://www.xuanyusong.com/archives/2974
该插件使用说明(看了几个说明都不如下面插件作者写的原版使用说明清晰易懂):
http://docs.poolmanager2.path-o-logical.com/code-reference
--------------------------------------
几个点:
1. 该插件可以在脚本内调用的方法
2.事件Event(delegate?)
在下面一篇非常详细的讲object pool的文章里,说了对象池里每个对象的重置的必要性。重置则可以在OnSpawned() 和 OnDespawned()里重置,还可以执行如播放音效,爆炸效果等。Event使用例子如下
3.PrefabPool可使用方法
在下面那篇文章里,已说明不要使用cull或者limit。因为池对象一般都是deactive的,占不了多少内存和性能。如果发现这影响了性能,肯定是游戏设计出了问题,cull 也救不了你。所以主要使用的是设定预加载数量等。
4.SpawnPool可使用方法
5.主要使用方法.Spawn()(代替Instantiate())的重载
6.主要方法.Despawn()(代替Destroy())的重载
7. .prefabs[]使用(用于获得该prefab的引用)
先要获得该prefab的引用,才能spawn
8. .GetPrefab()使用(和prefab[]功能相同,返回类型不同)
9. 使用Pool Manager所需的命名空间
10. Pool Manager使用官方示例
1.检测是否存在一个给定名字的池
2.获得并复制已“Spawn”的列表(比如现场所有还没死的Enemies,非常实用)
3.粒子系统在despawn(deactive)后依然继续(比如爆炸(粒子)后的烟雾效果)
4.弹丸自毁(子弹碰到某物或某段时间后爆炸)
5.由prefab名称获得spawn reference
参考Prefab[]的例子。
6.定时Spawn
7.使用池内处于active的对象作为列表(比如所有enemies)
11.怎样使用在脚本里调用PoolManager
首先
然后(参考:http://blog.csdn.net/linshuhe1/article/details/50949836)
4.一篇非常详细的讲解object pool的翻译文章
http://www.cnblogs.com/mezero/p/3955130.html