对象池

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

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值