美文网首页
CocosCreator-使用分帧创建对象

CocosCreator-使用分帧创建对象

作者: 程序猿TODO | 来源:发表于2021-04-01 09:37 被阅读0次

    在Creator游戏开发中,一般是这样创建对象:

    for (let i = 0; i < 10; i++) {
        let node = cc.instantiate(prefab);
        ...
    }
    

    上面代码本身没有问题,就是连续实例化10个对象。但在大量UI、动画同时出现时,却极有可能引起卡顿,因为实例化对象是个非常耗CPU的阻塞操作。

    优化方法就是采用分帧执行,例如分成10帧来执行,即每一帧只实例化一个对象。使用JavaScript的setInterval函数实现如下:

    let count = 10;
    let timer = setInterval(() => {
        if (count-- > 0) {
            let node = cc.instantiate(prefab);
            ...
        } else {
            clearInterval(timer);
        } 
    }, 0);
    

    如果this指针是个组件对象,也可以使用Creator封装的schedule系列函数来实现:

    let count = 10;
    this.schedule(() => {
        let node = cc.instantiate(prefab);
        ...
    }, 0, count-1, 0);
    

    相关文章

      网友评论

          本文标题:CocosCreator-使用分帧创建对象

          本文链接:https://www.haomeiwen.com/subject/phkrhltx.html