たこすのunity雑記帳

unity初心者がunity関連の備忘録として書いています。

【UI】TextMeshProは優秀だが・・・その2

前回のあらすじ

TextMeshProを使うには下準備が必要です、という記事を前回書きましてん。この2点に気をつければだいたいOKです、っていうやつですねん。

  • TextMeshProは手動でフォントを作成しないと日本語が使えない

  • デフォルトのTextとTextMeshProではスクリプトの書き方が違う

ほんでね、1個目の方は前回解説しましてんやわぁ。詳しく知りたいあんさんはこっち見てくんなはれや?

tacosunity.hatenablog.com

今回は2個目のんの解説したろおもてな、書いてまんねや。こちらさんの解説とおそらく大差ないから、こっち見てもろてもよろしおますで!

indie-game-creation-with-unity.hatenablog.com

TextMeshProでのスクリプトの書き方

さて・・・エセ京都弁はここまでにしましょうか。ノリでやってみましたが、元々関西人なのでスラスラ出てきました。意外とたのC1000タケダはもういない

今回はTextMeshProを使った際のスクリプトの書き方です。先述の通り、デフォルトのTextとは書き方が違います。両方比較していきましょう!

まず、TextMeshProのText、レガシーのTextと、TextManagerという名前の空オブジェクトを用意しました。両Textは大きさや場所を適宜調節して「こんにちは!」と書いてみました。

前回の記事で作った、さわらびゴシックを使用しています。そうしないとTextMeshProで日本語が表示されないからね・・・

上がTextMeshPro、下がレガシー版

TextManagerに同名のTextManagerスクリプトをアタッチします。中身は以下の通りです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro; // TextMeshProのText編集用、レガシー版には不要
using UnityEngine.UI; // レガシーのText編集用、TextMeshProには不要

public class TextManager: MonoBehaviour
{
    public TMP_Text textMeshProText; //TextMeshProのText編集用
    public Text legacyText; // レガシーのText編集用

    void Start()
    {
        textMeshProText.SetText("こんにちワニ!");
        // textMeshProText.text = "こんにちワニ!";でも可
        legacyText.text = "こんにちワォン!";
    }
}

TextMeshProは別の書き方もできるみたいですが、個人的に一番すっきりしてると思った書き方を紹介しました。

インスペクター上でそれぞれTextMeshPro、レガシー版Textにアタッチします。

これでゲームを再生してみると・・・

文字が変わったワニ!上手くいったワォン!

注意点

using TMPro; を忘れないようにしましょう。

Textのセット方法はSetTextというメソッドを使うのが良いみたいですが、忘れそうならレガシー版と同じくText.text = ○○○の書き方でもいいと思います。

ガベージコレクションなんて知らん!俺はもう寝る!