UnityでTextMeshProの編集を行いたい。


初めに

TextMesh Pro(TMP)とは, 高度なテキストレンダリング技術と一式のカスタムシェーダーの使用によって,テキストのスタイリングとテクスチャリングに関して非常に高い柔軟性を提供しながら,視覚的な品質を大幅に向上させます。(Unity公式マニュアルより引用)
スクリプト上から色を変更するときの方法が3DObjectから作成した時とUIから作成した時でそれぞれ違うっぽいのでメモ。
サンプルコードはTextMeshProのオブジェクトにアタッチして使う事を想定しています。

3DObjectから作成した時にアタッチするコード

using TMPro;
using UnityEngine;

public class 3DTMP : MonoBehaviour
{
    void Start()
    {
        //コンポ取得
        TextMeshPro textmeshPro = GetComponent<TextMeshPro>();

        // 現在のカラーを取得
        Color currentColor = textmeshPro.color;

        // 新しいアルファ値を設定
        currentColor.a = 0.1f; // 例として0.5fに設定

        // 設定した新しいカラーを適用
        textmeshPro.color = currentColor;
    }
    
    ------------ 以下処理を書いていく ---------------
}

UGUIから作成した時にアタッチするコード

using TMPro;
using UnityEngine;

public class UGUITMP : MonoBehaviour
{
    private void Start()
    {
        TextMeshProUGUI textMeshPro = GetComponent<TextMeshProUGUI>();

        Color currentColor = textMeshPro.color;

        currentColor.a = 0.1f; 

        textMeshPro.color = currentColor;
    }

    ------------ 以下処理を書いていく ---------------
}

まとめ

あまり3Dゲームを作ったことが無かったので初めて知ったコレらをせっかくなのでまとめていきました。コード上の違いとしてはGetComponent<>の中身が違うだけって感じです。

この記事が気に入ったらサポートをしてみませんか?