rt,直接把shader放到custommaterail上面没有任何反应,我应该怎么做才能使shader生效呢
我是这么做的
let spine = this.node.getChildByName(this.node.name).getComponent(sp.Skeleton);
if (spine) {
spine.customMaterial = toolSpine;
let matCaches = spine[’_materialCache’];
this.scheduleOnce(()=>{
for(let x in matCaches){
let m = matCaches[x];
m.setProperty(“liShiJie”,1);
m.setProperty(“time”,100);
}
});
}
之前实现了一个模型 shader, 你可以参考看看
https://gitee.com/yeshao2069/cocos-creator-shader/tree/v3.0.0/RoleEffect/RoleHighLight
感谢分享,不过按照这样写了之后又提示我 material.ts:307 illegal property name: u_rate, 可以确定我的shader里面是有这个变量的;Cocos 版本3.4
感谢分享,不过我这个是2D的龙骨动画
龙骨动画shader 确实没有整理,你可以参考一下 spine的shader
https://gitee.com/yeshao2069/cocos-creator-shader/tree/v3.0.0/HitWhite
你的shader在场景里直接拖拽到spine节点上试过显示正常吗,如果不正常就是shader的原因,如果正常就是脚本代码的原因,可以复制一下你写的这段代码我看看。
我的是龙骨动画,在场景里面放上去,没有任何的变化
不过相同 的Shader给一个Sprite的话是可以正常显示的
sprite和spine的shader是不能共用的,需要以spine的默认shader为模板来写shader,估计龙骨的原理也是一样的。
尝试了用 builtin-spine 作为模版来修改做Shader ,修改了片元着色器的输出
,添加上去之后依然没有任何的效果。。。。是龙骨动画的问题吗
可能是,因为我用spine加这个shader可以正常显示,我没玩过龙骨也没龙骨动画资源,还真不知道龙骨动画的shader需要啥特别的东西。
害,没法子了。感谢分享!!!!
我现在也碰到这个问题了,我的版本是2.4.6,spine的shader在web端可以正常更新属性,在android端不能更新,初始化是是什么样子,一直跑都是那个样子。大佬,请教下,后面怎么解决的?
大佬,spine在android端试过m.setProperty(“time”,100);这样动态更改属性吗?我这怎么弄都不生效,web端是正常的。
系统 : cocoscretor 3.6.2
你好。 Android手机报错: [ERROR]: TypeError: Cannot read property ‘_updateMaterial’ of undefined。