作为开发或者设计的你,是否经常遇到
spine里面的骨骼在场景编辑器没法动,怎么办
龙骨不能实时预览怎么办
还必须跑起游戏才能看动画,这样效率我的天太低了,
有没有一劳永逸的办法
有了最强场景编辑器一切都不是问题
经过笔者的研究,查询spine源码,把eidtor的return去掉,但是发现spine可以预览,但是巨卡无比,经过多次研究,终于完美流畅解决
想了一下,也不是很难的东西,分享出来给大家
pr地址:
https://github.com/cocos-creator/engine/pull/7923/files
记得gulp build编译,pr还在审核能不能过,看各位大佬了,反正对游戏运行没有任何影响
如何编译引擎?
看官方这里 https://docs.cocos.com/creator/manual/zh/advanced-topics/engine-customization.html?h=引擎 12
gulp build 后 用这个定制
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); } } }