3.3 spine无法设置材质属性

3.3 spine设置材质属性setProperty不生效,代码如图。

期望效果:
第一秒,亮度0.5。
第二秒,亮度1。
第三秒,亮度0。

实际效果:
岿然不动。

反注释图中的代码,就可以看到期望效果。虽然找到了这种替代方式,但是性能暂且不说,代码都要写多好多行。

附件Demo:
SpineMat.zip (362.3 KB)

spine的材质用到了 materialCache, 所以你动态修改material,是没有效果的。可以通过这样子处理下。

// spine的动态设置材质问题处理
        let matCaches = this.tempSpine['_materialCache'];
        for (var x in matCaches) {
            matCaches[x].setProperty('brightness', progress);
        }

https://gitee.com/yeshao2069/cocos-creator-shader/blob/v3.0.0/SpriteEffect/SpriteHighLight/assets/SpriteHighLight.ts#L29-33

1赞

为什么不暴露接口,让开发者使用了内部私有变量是不是说明你们api设计不合理