const {ccclass, property} = cc._decorator;
@ccclass
export default class SpinePreviewMode extends cc.Component {
static spinePreviewMode(){
if (CC_EDITOR) {
// 重写update方法 达到在编辑模式下 自动播放动画的功能
sp.Skeleton.prototype['update'] = function (dt) {
if (CC_EDITOR) {
cc['engine']._animatingInEditMode = 1;
cc['engine'].animatingInEditMode = 1;
}
if (this.paused) return;
dt *= this.timeScale * sp['timeScale'];
if (this.isAnimationCached()) {
// Cache mode and has animation queue.
if (this._isAniComplete) {
if (this._animationQueue.length === 0 && !this._headAniInfo) {
let frameCache = this._frameCache;
if (frameCache && frameCache.isInvalid()) {
frameCache.updateToFrame();
let frames = frameCache.frames;
this._curFrame = frames[frames.length - 1];
}
return;
}
if (!this._headAniInfo) {
this._headAniInfo = this._animationQueue.shift();
}
this._accTime += dt;
if (this._accTime > this._headAniInfo.delay) {
let aniInfo = this._headAniInfo;
this._headAniInfo = null;
this.setAnimation(0, aniInfo.animationName, aniInfo.loop);
}
return;
}
this._updateCache(dt);
} else {
this._updateRealtime(dt);
}
}
}
}
}
SpinePreviewMode.spinePreviewMode();
【cocos creator】编辑器里自动播放spine动画
最新推荐文章于 2024-06-18 00:50:20 发布