【Unity】uGUIボタン押したときにテキストの色が変わらないので適当に拡張してみたよ。その①
こんにちは。
大坂です。
もう6月ですよ!
今月が終わったら今年ももう半年終わりですね。。
さてはて、今週の話題ですよっと。
まぁタイトルの通りのことです。
テキストを含んだこんなボタンを作ったとして、押すとテキストだけが白く残って気になるって話ですね。
(押したときの色を濃くしなければそんなに気にならないかもしれませんが…)

※クリックしたら見れますよっと
ということでボタン押したら一緒にテキストの色も変わってほしいので拡張です。
こんな感じのコードになりました。
一応複数テキスト入れておいて大丈夫なように最初に子供を全部取得するような形にしています。
このコードをButtonの代わりにAddConponentしてあげれば使用できます。
これでちゃんとテキストの色も変わっていますね。

※クリックしたr…
テキストだけ指定の色にしたいとかあってもうちょっと手を加えたものがありますが、あまりのネタのなさに来週に持ち越しです。
では今週もこれにてノシ
大坂です。
もう6月ですよ!
今月が終わったら今年ももう半年終わりですね。。
さてはて、今週の話題ですよっと。
まぁタイトルの通りのことです。
テキストを含んだこんなボタンを作ったとして、押すとテキストだけが白く残って気になるって話ですね。
(押したときの色を濃くしなければそんなに気にならないかもしれませんが…)

※クリックしたら見れますよっと
ということでボタン押したら一緒にテキストの色も変わってほしいので拡張です。
こんな感じのコードになりました。
using UnityEngine;
using UnityEngine.UI;
public class ChildColorChangeButton : Button {
Text[] childTxt;
protected override void Awake() {
// 自オブジェクトの子供のテキストをすべて取得
childTxt = this.gameObject.GetComponentsInChildren();
}
protected override void DoStateTransition(SelectionState state, bool instant) {
base.DoStateTransition(state, instant);
switch(state) {
case SelectionState.Highlighted:
case SelectionState.Normal:
for(int i = 0; i < childTxt.Length; i++) {
// InspectorのボタンのNormal Colorに指定した色にする
childTxt[i].color = colors.normalColor;
}
break;
case SelectionState.Pressed:
for(int i = 0; i < childTxt.Length; i++) {
// InspectorのボタンのPressed Colorに指定した色にする
childTxt[i].color = colors.pressedColor;
}
break;
case SelectionState.Disabled:
break;
}
}
}
一応複数テキスト入れておいて大丈夫なように最初に子供を全部取得するような形にしています。
このコードをButtonの代わりにAddConponentしてあげれば使用できます。
これでちゃんとテキストの色も変わっていますね。

※クリックしたr…
テキストだけ指定の色にしたいとかあってもうちょっと手を加えたものがありますが、あまりのネタのなさに来週に持ち越しです。
では今週もこれにてノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ Unity】uGUIのオブジェクトってHierarchyで下に行くほど上のレイヤーになるじゃないっすか。あれ逆にできないの?できるんです! | 【ハルシオンブログ】Unityのアセット「UniWebView2」にてHTMLからアプリに値の受け渡しできちゃった »
コメント
| h o m e |