改装内置的spine shader 为啥设置uniform变量无限,求引擎大大看看!!!!!!!!!!!!!
但是在编辑器里面改就可以生效
3.8.4版本
能否给一下简单的复现 demo,我们让相关开发人员验证一下?
不要沉不要沉
因为 spine 的 material 有缓存,不推荐这样处理
const color = spine.color.clone();
color.a = this.time * 255;
spine.color = color;
如果要设置透明度直接设置 spine 的 color
我现在要实现一个动态的spine动画遮罩,类似骨骼蒙板,功能实现了发现蒙版不会动,最后定位到uniform变量传递无效,可以手动清理material缓存吗
有清除的函数,但是是未开放的 api,未来可能会删除或者改名
// @ts-ignore
spine._cleanMaterialCache();
spine.customMaterial.setProperty("cusOpacity",this.time);
也会反馈相关问题给负责 spine 的相关人员,后续完善 spine 时考虑进去
还有一个问题,为啥 spine 动画要用 spine.customMaterial去操作,而sprite直接可以用 sprite.material去操作,能统一吗
具体看你是否有用到 customMaterial,spine 是优先获取 customMaterial,我看你给的 demo 是有 customMaterial 的才这样操作,如果要统一那就把 customMaterial 去掉
但是 material 是没有在属性面板的,所有需要用代码设置
我在脖子这里做了一个蒙版,但是一个场景有多个动画的时候不知道为啥失效了
sprite有customMaterial的时候也可以通过material操作的
这种方式可以
多个动画失效了,这个帮忙看看
哦有一个生效了,感觉像是材质共享了
cache mode用了 shared cache ?