shader使用请教

  • Creator 版本号:1.5.0
  • 目标平台:( iOS / Android / 模拟器)

是这样的,我使用shader使一个预制创建的对象变色,然后过一段时间我想让这个对象变回原来的颜色,我该怎么做?目前我是另外设置一个常规片段着色器的shader来恢复原来的颜色,不过我再对这个对象的透明度做更改就无效了

没有发现不可以
默认:

变灰:

恢复:

半透明:

不透明:

半透明变灰:

哦哦,不好意思,我是搞错了,是使用spine的问题,spine的的受击动作在开始加一个变红色的shader,然后过了0.2秒设置另一个shader使其变回原来的颜色,但是这个受击动作有一部分骨骼是使用淡入淡出的效果,变回常规颜色后就显示不出这个淡入淡出的效果,看我明天去公司了搞个demo上传上来

大神可以给出这些变灰的代码么,正好想做这个特效

前面写了个shader使用教程http://blog.csdn.net/xufeng0991/article/details/72973664),就是用的变灰的例子。

2赞

问题解决了,是我的shader写错了,对shader不熟,还要多加学习啊

谢了哈

想请教一下前辈,
要怎么把shader套用到Spine上面呢?

看我上面发的教程

2赞

这个教程是套用到Sprite上,我指的是Spine :joy:

var ShaderUtils = require("ShaderUtils");

cc.Class({
    extends: cc.Component,

    properties: {
        sp: sp.Skeleton
    },

    onLoad: function () {
        ShaderUtils.setShader(this.sp, "gray");
    },
});

如图,在编辑器中的效果:

添加shader之后:

1赞

如上~~

1赞

再次感謝大神 (膜拜中) :heart_eyes:

能否动态除去shader?

不能去除,渲染对象必须有shader,可以重新成默认的shader

使用击中闪白 记得优化drawcall