【Unity】スプライトをシェーダーで明るくしたり暗くしたりする方法

unity-sprites-defalt-custom

昔使っていたスプライトをシェーダーで明るくしたり暗くしたりするシェーダー。

そもそも中身を知らないまま使っていたので、調べてみました。

スポンサーリンク

シェーダーのダウンロード

  • 5.4のビルトインシェーダーをダウンロード

Unity – Download Archive

  • Sprites-Default.shaderを探し、Unityへコピー
スポンサーリンク

シェーダーのカスタマイズ

シェーダー名の変更

Shader "Sprites/Default"

Shader "Sprites/Default_Custom"

一箇所コードの追加

         fixed4 frag(v2f IN) : SV_Target
{
fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color;
c.rgb *= c.a;
return c;
}

         fixed4 frag(v2f IN) : SV_Target
{
fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color;
c.rgb = c.rgb*2+max(fixed3(0,0,0),IN.color.rgb-0.5)*2;
c.rgb *= c.a;
return c;
}

まとめ

uGUIの画像を明るくしたり暗くしたりするシェーダー

スポンサーリンク

画像の表示

マテリアルのアサイン

f:id:min0124:20171024004931p:plain

  • uGUIのImageを作成し、Materialに先程のシェーダーをつけたマテリアルをアサイン

中間のグレー(rgb128)の状態でデフォルトの状態となっている

テスト

f:id:min0124:20171024005113g:plain

スポンサーリンク

参考

Unity5.xでuGUIのImageを白くする – Qiita

コメント