Cocos Creator大量使用龙骨动画的性能优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cocos Creator大量使用龙骨动画的性能优化相关的知识,希望对你有一定的参考价值。

参考技术A 以下讲的是Cocos Creator v2.3.2版本的情况:
根据DragonBones属性:

主要修改的就是【Animation Cache Mode】和【Enable Batch】两个属性。

当界面需要同屏显示多个(3个及以上)的龙骨对象时,选择【Animation Cache Mode】为SHARED_CACHE 模式,勾选【Enable Batch】,会明显改善游戏流畅度(小游戏尤为明显)。

注意:龙骨动画回调

此时_event为空,this.animState也为空,不能用this.animState.stop();来控制动画,可以用this.dragonBones_xxx.timeScale = 0;来暂停/停止动画,用this.dragonBones_xxx.timeScale = 1;来继续播放动画。

最后,也是最重要的,Cocos Creator v2.3.2版本的apk包会有闪退的问题,换成Cocos Creator v2.4.3 beta2及以上版本就可以了,但是!!!这里又有个大问题,关于小游戏的子包的,因为Cocos Creator新版本使用新的资源管理:Asset Bundle,看下官网介绍:

也就是说小游戏的子包的使用方式已经变了,需要调整下。

cocos creator js加载龙骨

cc.Class({

extends: cc.Component,

properties: {

dragonBone: {

default: null,

type: dragonBones.ArmatureDisplay

}

},

dynamicCreate () {

if (this.dragonBone.dragonAtlasAsset) {

return;

}

cc.resources.load('dragonBones/NewDragonTest', dragonBones.DragonBonesAsset, (err, res) => {

if (err) cc.error(err);

this.dragonBone.dragonAsset = res;

cc.resources.load('dragonBones/texture', dragonBones.DragonBonesAtlasAsset, this.onComplete.bind(this));

});

},

onComplete (err, res) {

if (err) cc.error(err);

this.dragonBone.dragonAtlasAsset = res;

this.dragonBone.armatureName = 'armatureName';

this.dragonBone.playAnimation('stand', 0);

}

});

以上是关于Cocos Creator大量使用龙骨动画的性能优化的主要内容,如果未能解决你的问题,请参考以下文章

Cocos Creator TS加载龙骨

cocos creator js加载龙骨

Cocos Creator 通用框架设计 —— 资源管理优化

Cocos Creator 通用框架设计 —— 资源管理优化

cocos creator (1) ——帧动画

cocos creator blink闪烁动画怎么没有效果