FC2ブログ
    02 «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.» 04

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

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

     

    【ハルシオンブログ】UnityのSuperTextMeshを使う際に、途中で文字色を変えたくても変わらないっていう話。 

    こんにちは。坂内です。

    一昨日の夜の地震すごかったですね・・・・
    また地震が続いてしまうと思うと大変すぎです・・・
    福島の皆さんお気をつけてください。

    今日は雨!また大雨の地域もあるようなのでお気をつけくださいませ。


    さて、Unityのお話。
    SuperTextMeshという文字関連のアセットを使ってるのですが、文字色を途中で変えようとしても変わらない現象が・・・

    ちゃんとドキュメントとか見てないのがいけないのかもしれませんw

    uGUIのTextやTextMeshProとかだと「().color = 色」とかで変わるじゃないですか。
    これが効かない。

    「ボタンを押すと、ボタンの中の文字の色を変える」というのを作ってみましたが、こんな感じで色の部分は変わってるのですが、実際の画面の文字色が変わらないという感じになります。

    SuperTextMeshだと色の変え方が別なのかもしれません・・・・

    ただ、カラーピッカーのところを手で変えると文字の色も変わるんですよ・・・・


    これってSuperTextMeshのバグなんでしょうか?

    ってことで、こんなコードを無理やり書いて対応すれば、ちゃんと変わるようになります。


    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20210215 : MonoBehaviour
    {
    [SerializeField] Button btnChangeColor;

    private void Awake() {
    btnChangeColor.onClick.AddListener(OnClickButton);
    }


    public void OnClickButton() {
    SuperTextMesh text = btnChangeColor.transform.GetComponentInChildren();
    text.color = new Color(Random.Range(0f,1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
    text.enabled = false;
    text.enabled = true;
    }
    }



    無駄に text.enable = falseとtrueをしてあげると・・・・・



    ちゃんと変わってくれました!

    って無理やりな方法で対応してみたけど、もっといい方法ありますか?

    なにかわかる方いましたら教えてくださいませ。

    .colorで変えようとしていること自体が違うのかもしれませんorz


    ということで、今日はSuperTextMeshの文字色の変更についてでした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

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