[已发布] Cocos Creator 3.8.6 社区版公测贴【3.14】

正式了?image 模拟器预览遇到4.2的spine闪退,web不会

3.8.6正式版下为什么spine 4.2导出的动画的spine.setCompleteListener和setEventListener都无法响应呢?

        spine.setAnimation(0, "present", false); 

       
        spine.setCompleteListener((trackEntry) => {
            if (trackEntry.animation.name === "present") {//这里设置断点始终执行不到
                spine.setAnimation(0, "Idle", true); 
            }
        });

image 要选4.2

您好,已经设置为spine 4.2,并将原来3.8的动画重新导出为4.2格式(skel或json都试过了),可以播放,但是spine.setCompleteListener((trackEntry) => {的回调拿不到,请问哪里出错了呢?

伟大!无需多言!马上用上,有问题继续反馈

bullet物理引擎在获取球形碰撞体的半径时报错,PhysX物理引擎就没问题


去掉调试模式加载bundle的spine为空

我看截图是在编辑器内预览出现报错,在浏览器预览模式也报错吗?能否提供一个最简复现此问题的 demo ?

是回调 data 类型不对了吗? resetEnums 是 SkeletonData 的成员函数,如果 data 类型正确,resetEnums 不应该没有的。有一种情况,就是这个 data 因为什么原因被释放了,比如调用了 资源 释放接口,或者调用 decRef 导致 SkeletonData asset 被释放了。

你可以遍历 data 的 key value 的值,看 resetEnums 是不是为 null 。

另外,检查一下 ResourceMgr 相关的封装代码,看是不是哪里有逻辑上的错误。

关于tiledMap像数偏移,我在web端使用我当前的项目资源测试发现把偏移0.5改成1更完美些。我们tiledmap图片资源是美术摆好的方式。
image
所以这个偏移值建议也可外部指定。

是这样的

data 怎么不是 SkeletonData 的实例?看好像是 ImageAsset 的实例。

去掉调试模式构建出来 就是这样,图片 bundle没变一起构建的

图片 这个是构建那里勾选调试模式后,加载到的data

麻烦提供一个 Demo ,我们定位一下。谢谢。

有自己的spine资源,不想泄露,如何上传,还是发邮件

可以私信一下

您好,请问cocos creator 3.8.6下播放Spine 4.2动画时,可以顺利播放,但是拿不到spine.setCompleteListener的回调,请问这个bug怎么解决?

    const spine = this.animalNode.getComponent(sp.Skeleton);
    spine.setStartListener(e => {
        console.log('start', e.animation.name); //执行
    });

    spine.setCompleteListener(e => {
        console.log('complete', e.animation.name); //无法执行
    });

    spine.setAnimation(0, 'animation', false);

4.2 的 complete, dispose的 enum的值和 ts的值是倒的,如果是以 spine 4.2为开发,请参考这个PR修改。 387在 c++ 同步了3.8和4.2相关enum的修改,所以ts也改了

Spine 多版本,模拟器的功能验证的确有遗漏。我们会在后续版本中修复。

另外在原生上,目前模拟器 C++ 代码是预编译好的 exe,因此无法暂时无法做到动态切换 Spine 版本立马生效。

我后续会附上 spine 4.2 和 spine 3.8 预编译好的模拟器 exe 文件,供大家临时替换一下。