cocos creator 如何将 shader 作用于 node 及其子节点?

  • Creator 版本:v2.0.2

  • 目标平台: Web

  • 问题:现在的情况是我已经可以通过改变 sprite 的 material 来使 shader 生效. 问题是 如何将 node 及其子节点作为一个整体来使用 shader?而不是去遍历的改变每一个子节点的 sprite 的 material?

  • 举例:比如下图中较小的卡牌是较大卡牌的子节点,期望达到的效果是只给较大卡牌的设置 shader, 较小的卡牌也会置灰

mark

拿模糊的 shader 来说,我期望达到的效果是这样的:

如果是遍历对每个子节点单独设 shader, 效果是这样的:

目前需要用 Camera 来捕捉内容到 RenderTexture 中,然后将 RenderTexture 作为一个独立的 Sprite 贴图渲染,修改它的 material

1赞

请问如何修改Sprite的material?在API文档中没看到相关属性。

1赞

意思是相当于截图然后重新创建一个sprite覆盖到上面吗?

请问大佬,后来这个问题怎么解决的呢?