前回のあらすじ
TextMeshProを使うには下準備が必要です、という記事を前回書きましてん。この2点に気をつければだいたいOKです、っていうやつですねん。
TextMeshProは手動でフォントを作成しないと日本語が使えない
デフォルトのTextとTextMeshProではスクリプトの書き方が違う
ほんでね、1個目の方は前回解説しましてんやわぁ。詳しく知りたいあんさんはこっち見てくんなはれや?
今回は2個目のんの解説したろおもてな、書いてまんねや。こちらさんの解説とおそらく大差ないから、こっち見てもろてもよろしおますで!
indie-game-creation-with-unity.hatenablog.com
TextMeshProでのスクリプトの書き方
さて・・・エセ京都弁はここまでにしましょうか。ノリでやってみましたが、元々関西人なのでスラスラ出てきました。意外とたのC1000タケダはもういない
今回はTextMeshProを使った際のスクリプトの書き方です。先述の通り、デフォルトのTextとは書き方が違います。両方比較していきましょう!
まず、TextMeshProのText、レガシーのTextと、TextManagerという名前の空オブジェクトを用意しました。両Textは大きさや場所を適宜調節して「こんにちは!」と書いてみました。
前回の記事で作った、さわらびゴシックを使用しています。そうしないと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 = ○○○の書き方でもいいと思います。
ガベージコレクションなんて知らん!俺はもう寝る!