美文网首页
Godot Shader特效:Sprite置灰(GrayScal

Godot Shader特效:Sprite置灰(GrayScal

作者: 吃烧烤的老王 | 来源:发表于2019-07-18 13:17 被阅读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)

相关文章

网友评论

      本文标题:Godot Shader特效:Sprite置灰(GrayScal

      本文链接:https://www.haomeiwen.com/subject/aptllctx.html