クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【Unity】文字の使い方[表示・中央揃え・日本語フォント] 

Unityで文字の表示、文字リソースのロードや処理のまとめです。

文字データの扱い

表示する

テキストの配置

ゲームオブジェクトからTextMeshProをインサート。

 

ない場合Importerが出るので「Import TMP Essentials」をインポートします。

 

配置すると大きすぎるので、位置やサイズを調節。

 

インスペクタから文字を変更・リサイズできます。

 

中央揃え

タグが利用できます。

<align=center>

 

 

スクリプトでテキスト変更

「using TMPro;」を宣言してから利用します。

「SetText」関数でテキストをセットします。

 

using TMPro;

public class scrTXT : MonoBehaviour
{     
    void Update()
    {
        TextMeshProUGUI tmp; 
        if (Input.GetMouseButtonDown(0)){
            tmp= GetComponent<TextMeshProUGUI>();
            tmp.SetText("ok");
        }     
     }
}

 

 

文字データの処理

データの読み込み

テキストファイルをアセットの「Resources」へ入れます。

 

TextAsset型として「 Resources.Load 」関数でデータを取得できます。

スクリプトでコンソールへ出して確認します。

 void Start()
    {
        var TextAsset  = Resources.Load ("data") as TextAsset;
        Debug.Log (TextAsset .text);
    }

 

 

データの後処理

取得したテキストは、Split関数で区切られた配列に変換することができます。

 string[] lines = TextAsset .text.Split(',');

 

 

文字の不具合

文字が表示されない?

うちでおきた事例ではCanasの下にText(TMP)をおかないと表示されないことがありました。

 

文字化け?

日本語に対応していないフォントだと文字化けがおきます。

 

そこで日本語対応フォントをUnityに埋め込む作業が必要です。まずはフォントはNoto sans japaneseをダウンロードし、Unityのアセットへドラッグします。

Noto Sans Japanese - Google Fonts

 

Text(TMP)への埋め込みですが、「Window>TextMeshPro>Font Asset Creator」を起動。

 

NotoSansJでキャラクターセットを作って保存。

文字リストは以下を使わせてもらうと簡単です。入れたらGenerate Font Atlasでコンパイル?します。

日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれる漢字) · GitHub

 

 

Text(TMP)のインスペクタで、埋め込んだフォントをFont Assetへ割り当てできます。日本語表示がゲーム画面で確認できればOK。

 

 

本ブログのUnity関連記事一覧はこちら。

www.kyoukasho.net

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ