generated at
Godot3.5 Shaderを使ってスプライトを白く光らせる
ダメージを与えた時など、敵を一時的に白く光らせたい時の shader
shader
shader_type canvas_item; uniform vec4 flash_color: hint_color = vec4(1.0); uniform float flash_modifier: hint_range(0.0, 1.0) = 1; void fragment(){ vec4 color = texture(TEXTURE, UV); color.rgb = mix(color.rgb, flash_color.rgb, flash_modifier); COLOR = color; }
適用する
uniform で定義した変数を、スクリプトから変動させる
ダメージを受けた時に、set_shader_param()を実行する
sprite.material.set_shader_param("flash_modifier", 1)
timer など使って値を元に戻す
同じshaderを使って、分身時のシルエット表示などにも使える
(画像は上のYoutube動画より)