【Unity入門】1分でTextを表示しよう!スコアの表示まで簡単解説!

よろしくお願いいたします。

早速ですが今回は「ゲームのスコアを画面上に表示する」ことを目標とし、textの使い方について見ていきましょう!

以下アジェンダのように一式通して説明していきますので、ぜひ参考にしてみてください。

[基本] まずはtextを表示してみよう!
[基本] スクリプトからスコアを表示してみよう!
[応用] textで出来るいろいろなこと!

それではよろしくお願いいたします!

目次

まずはtextを表示してみよう!

それでは、textの作成に入っていきましょう。

この章ではtextを作成し、任意の文字を表示させるところまでサクッと見ていきましょう!

textを作成しよう!

unity-text-1

Hierarchy画面上で右クリック→UI→Textを選択しましょう。

unity-text-2

上記の画面のようにCanvasTextEventSystemが作成されるはずです。

実行してみよう!

実はたったこれだけで、文字の表示という目的だけなら達成できています。

では早速実行してみましょう。

unity-text-3

各自の設定により位置がずれていると思いますが、文字はちゃんと表示されているはずです。

文字を変更してみよう!

折角なので文字を変更してみましょう。

unity-text-4

画像のように、Textの中を書き換えてみましょう。

実行結果は以下の通りです。

unity-text-5

ちゃんと文字が変更されていますね。

例えば簡易的なゲームタイトルの表示、などならこれで済ませてしまえますね!

とても簡単です。

うまく利用しましょう!

スクリプトからスコアを表示してみよう!

続けて、スクリプトからの文字の変更方法を見てみましょう!

これが実現できれば、スコア表示や、会話文の表示など様々なことが行えますよ。

スコアの管理処理を用意しよう!

スクリプト実行用のオブジェクト作成

まずはスクリプト実行用のオブジェクトを作成します。

unity-text-r-1

上記画面のように、Hierarchy上で右クリック→Create Emptyを選択しましょう。

また名前はわかりやすいようにScoreManagerにしておきましょう。

unity-text-r-2

スクリプトの作成

そしたら次はスクリプトの追加です。

unity-text-8

画面のように、AddComponent→NewScriptでスクリプトを作成しましょう。

スクリプトの名前はScoreMangerにしておきましょう。

unity-text-9

無事ScoreManagerが作られましたね!

スコアを加算しよう!

ではプログラムに入っていきましょう。

まずは以下のように入力してみましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.UI;  // 追加しましょう

public class ScoreManager : MonoBehaviour {


    public GameObject score_object = null; // Textオブジェクト

      // 初期化
      void Start () {
      }

      // 更新
      void Update () {
        // オブジェクトからTextコンポーネントを取得
        Text score_text = score_object.GetComponent<Text> ();
        // テキストの表示を入れ替える
        score_text.text = "000000";
      }
}

追加し保存できたら、Unityのエディタ上に戻ります。

戻ったら、ScoreManagerのスクリプトのInspectorウィンドウ上に、score_object変数が追加されているはずです。

そうしたら以下の画面のように、textを投げ込みましょう。

unity-text-10

ここまでできたらプログラムの実行です!

unity-text-11

うまく行きましたね!

ここまでいけば後は簡単です。

表示しているスクリプトを変数にしてしまいましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ScoreManager : MonoBehaviour {

    public GameObject score_object = null; // Textオブジェクト
    public int score_num = 0; // スコア変数

      // 初期化
      void Start () {
      }

      // 更新
      void Update () {
        // オブジェクトからTextコンポーネントを取得
        Text score_text = score_object.GetComponent<Text> ();
        // テキストの表示を入れ替える
        score_text.text = "Score:" + score_num;

        score_num += 1; // とりあえず1加算し続けてみる
      }
}

上記のスクリプトは、textの表示をとりあえず、1加算する形式にしたものです。

実行してみましょう。

text

gif画像なので、貼ってある画像では、飛び飛びになってしまっていますが…

ちゃんとスコア表示がされていますね。

今回は時間経過で足していますが、例えば敵を倒した時にこのスコア変数へ数字を足すようにすれば、うまくゲームのスコアとして機能しそうですね!

textで出来るいろいろなこと!

最後にtextの設定を簡単にですが見てみましょうか。

設定はたくさんあるので、初心者向けの最低限のものだけ見てみましょう。

unity-text-12

unity-text-13

① 座標や横幅などはここで操作可能です。

② 先ほど触りましたね。textの表示文字はここから変更可能です。

③ フォントのサイズはここから変更可能です。

④ 右寄せや上寄せなどはここから設定しましょう。

⑤ 文字色はここからです。

ぜひ他にも設定を触って挙動を確認してみましょう。

まとめ

今回は、本当に単純にスコアを表示する部分のみ見てきました。

簡単なゲームのスコアならこれで作ることができると思います。

しかし、フォントの変更や特定文字のみの色変えなど、textについて学ぶことはたくさんあります。

ぜひ引き続きtextについて学んでみてください。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次