cocos creator---对象池使用

1、对象池,顾名思义就是暂时存放对象的容器;
常用存放prefab,尽可能的减少Canvas画布上节点的挂载。加快加载速度。
2、使用:
    a、准备prefab
    b、初始化对象池---场景初始化加载中,创建需要数量的节点,放到对象池中
        properties: {
            enmyPrefab: cc.Prefab
        },
        onLoad: function () {
            this.enemyPool = new cc.NodePool();
            // NodePool(用来重复创建和销毁节点,官方文档:://docs.cocos.com/creator/api/zh/classes/NodePool.html)。
        }
    c、从对象池中
        createEnemy: function () {
            let enemy = null;
            //c1、当前对象池中的可用对象数量
            if (this.enemyPool.size > 0) {
                //_1、从对象池中获取对象
                eneny= this.enemyPool.get();    
            } else {
                //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
                enemy = cc.instantiate(this.enemyPrefab);
            }
            //c2、将生成的节点挂载到节点树上
            enemy.parent = parentNode;(或者node.addChild(新节点))
            //c3、调用enemy的脚本进行初始化
            enemy.getComponent('Enemy').init();
        }
    d、将不用的对象回收到对象池中
        onEnemyKilled: function (enemy) {
            this.enemyPool.put(enemy);
        }
    e、清除对象池(切换场景或者节点不再被需要时清空)
        myPool.clear();
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值