2.1.2 Spine setMaterial BUG 及 Opacity BUG

  • Creator 版本:2.1.2

  • 目标平台: Android及模拟器异常 WEB平台正常

2.1.2版Spine的两个比较大的BUG

在Native平台有问题 ,在WEB平台正常

1.setMaterial

代码语句:
skeleton.setMaterial(0,cc.Material.getInstantiatedBuiltinMaterial(‘2d-spine’,skeleton))

结果表现:
主动为Spine调用setMaterial方法后,原Spine的缩放属性及位置属性都被重置

2.受父节点透度影响。

代码语句:
let act = cc.fadeIn(0.5);
this.node.opacity = 0;
this.node.runAction(act);
为父节点执行一个渐变动画,同时创建Spine展示。

结果表现:
Spine第一创建展示的前几帧没有受父节点的透明度影响,结果表现为亮一下,再跟着父节点的透明度变化

附上两个BUG的Demo:
TestDemo2.zip (713.8 KB)

A场景测试第一个BUG
B场景测试第二个BUG

@jare
麻烦引擎大佬解决下,并发修复PR发到这里,辛苦

1赞

谢谢,下周一帮你看一下!

遇到同样问题,spine在更新skeletonData后 调用runaction的fadein或者修改opacity都会 出现闪一下再渐现的问题。这个在web上是好的 win32上概率非常高。

make

修复设置spine/dragonbones材质时,spine/dragonbones位置不正确的问题。
关于透明度,2.1.x 原生不支持spine/dragonbones的透明度级联,如果要修改透明度,直接修改spine和dragonbones所在节点的透明度。
spine/dragonbones 透明度级联的问题已在2.2/2.3修复。

以下是2.1.3 spine / dragonbones相关修复pr
https://github.com/cocos-creator-packages/jsb-adapter/pull/148

1赞