【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について学んでみてください。

この記事を書いた人

学生時代を含めると、かれこれ10年以上プログラマーとして過ごしています。
様々な言語や環境、プロジェクトに関わってきましたので、より実践的な記事をみなさんにお届きるよう情報発信していきます!

目次