Godot Shader特效:Sprite置灰(GrayScal

2019-07-18  本文已影响0人  吃烧烤的老王

游戏中,当某个按钮不可用时,常常要将其颜色置为灰色以告知用户。一种方法是给这个按钮增加一个灰色图片,需要置灰的时候替换上,但是如果需要置灰的按钮很多,为每个按钮都要单独做一个灰色图就太麻烦了,因此我们常常用Shader来解决这个问题.在Godot中这个方法也同样适用于Sprite

最终效果

graying.gif

代码如下

shader_type canvas_item;
uniform bool enabled = true;

void fragment(){
    vec4 color = texture(TEXTURE,UV);
    if(!enabled){
      float gray = (color.r + color.g + color.b)*0.33;
      color.rgb  = vec3(gray);
    }
    COLOR = color;
}

这样在GDScript中用如下代码就可将这个按钮置灰

button.material.set_shader_param("enabled", false)
上一篇 下一篇

猜你喜欢

热点阅读