FC2ブログ
    07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】uGUIボタン押したときにテキストの色が変わらないので適当に拡張してみたよ。その① 

    こんにちは。
    大坂です。

    もう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)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/407-7793b25e
    この記事にトラックバックする(FC2ブログユーザー)