問題
こういうボタンがあったとして、押したときやハイライトした時にラベルとアイコン両方の色を変えたい。
デフォルトだとTargetGraphicでは一つしか選べない
テキストの色を変えたいときは、TargetGraphicにTextを入れて、テキストの元の色を白にしておいて、Normalに黒、ハイライトに色を指定する
元の色を白にするのも結構めんどくさいがまあそれはいいとして、アイコンもテキストも同じような挙動にしたい。
Buttonスクリプト置き換え
検索したらButtonの拡張版を作っている方がいた
使えた!
既存のButtonコンポーネントは消して新しいもの(元の記事とは名前を変えてButton_MultiTargetにした)を付ける。一つは従来通りButtonのTargetGraphicセットして、2つ目以降は一緒に付くTransition~~にセットする。
とりあえずの目的は果たせそうだが、長期的に運用していくにあたってこれでよいだろうか・・・
あと既にあるものを置き換えていくのがめんどくさいな~置き換えるのはいいけど置き換えた後に、スクリプトからのボタンの参照を設定しなおさないといけない
あと背景はアイコンとテキストとは別の色でハイライトしたいなどの状況が出てきたときはどうしたらいいんだろう~。自分で拡張を書けばいけるのかもしれないが書けない;;
UnityAsset
そんな悩みも解決できるアセットがあった!10ドル~
やや古いしレビューがないからちゃんと動くか不安
他
この記事の下のほうに書いてあるのも上と同じようなものだった。むしろTextMeshProを参照できなかったので最初の記事のほうがよい。
他のプロジェクトってどうしてるんだろう。。
どこかで基本はデフォルトのButtonなどのコンポーネントは使わないって聞いたことあるから、もろもろのButton拡張の中にこの機能の入れてるのかな?