ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity入門 - Textの使い方 -

初めに


 本記事では、UIの一つであるTextの使い方を解説します。

Textの生成方法



 ヒエラルキーで右クリックしてください。UIの中あるTextをクリックすると、CanvasとTextが生成されます。

Textが表示されない場合

 Textがヒエラルキー内にあるのに、Textが画面に映らない場合があります。その原因は次の3つのいずれかのことが多いです。

  • Canvasの子オブジェクト内にTextがない
  • Textがカメラに映っていない
  • 文字サイズがTextのサイズより大きくなってしまっている

Canvasの子オブジェクト内にTextがない

 UIは親オブジェクトにCanvasがなければ、画面に映りません。

Textがカメラに映っていない

 Textを選び、インスペクターのRect TransformにあるPos X、Pos Y、Pos Zの数値を調整しましょう。

文字サイズがTextのサイズより大きくなってしまっている

 

 上の動画のように、Textのサイズを文字サイズが上回ると表示されなくなってしまいます。そのときは、Rect TransformのWidthとHeightの数値を上げましょう。

インスペクターから編集する




サイズ、位置

 Rect Transformから調整できます。

文章の内容、Font、FontSize等

 Text内から編集できます。

スクリプトから編集する

 スクリプトからも編集ができます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;  //TextはUIのため, UnityEngine.UIを追加

public class SampleScript : MonoBehaviour
{
    public GameObject TargetText;  //Textオブジェクト取得用
    Text _targettext;  //Textのコンポーネント取得用

    void Start()
    {
      //コンポーネントの取得
      _targettext = TargetText.GetComponent<Text>();   

      //fontサイズの変更
      _targettext.fontSize = 64;

      //Text内容の変更
      _targettext.text = "スクリプトから文章を変更しました";
    }
}

 上記のようにTextコンポーネントを取得すれば、スクリプトからTextの情報を変更することができます。今回はStartの中に書いているので、実行すると下の動画のようになります。

TextMexhProの紹介

 



 先ほど、Textを生成する際、そのすぐ下にText - TextMeshProと書いてあったと思います。TextMeshProでは、Textでやりづらい装飾やフォントを編集することができます。
 また、後日記事にします。

(公式の説明)
docs.unity3d.com

Textにアニメーションを付けるには

 Typeface Animatorというアセットを使えば、比較的簡単にアニメーションを付けられます。

 下のリンクからアセットをダウンロードできます。これも後日記事を書こうと思っています。

github.com

最後に

 Textの使い方をまとめました。まだTextMexhProやTypeface Animatorなど解説できていない部分はまた別で記事にする予定です。