0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnityのButtonのColor TintはVertex Colorを使って実現されていた

Posted at

突然押したように見えなくなったボタン

UnityのShader Graphを使うと、視覚的にノードを繋げていくだけでこんな演出が簡単に作れる。

Image from Gyazo

この例では、白黒 ないしは 白&透明で表現したマスク値から、好きなパターンで画像にハイライトを入れることができるようにした。

しかし、Unityのボタンの画像にマテリアルを適用すると状況によっては困ったことになる。
Color tint モードで、画像の色を微妙に変化させて無効状態や押し込んだ状態を表現しようとすると、
何も考えずにやるとボタンの色が変わらない現象に陥る。

Image from Gyazo
(クリックしているのにボタンの色が変わらずブチ切れる図)

TL;DR

UnityのButtonのColor Tintは Vertex Color を変化させることで実装されている。"Tint"という名前なのにそれを使っていないのである!そのため、次のように Vertex Color ノードを使って現在のVertex Colorを取り出し、出力する各チャネルに乗算適用する必要がある。

Image from Gyazo

このVertex Colorノード(に加えて、Vertex Colorそのもの)の存在は、UIボタンの画像として指定する Image コンポーネントに現れないため、かなりハマり所だった。

Image from Gyazo
(押せる(押したように見える)ようになった!少し暗くなっているのがわかるはずだ。)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?