よろしくお願いいたします。
早速ですが今回は「ゲームのスコアを画面上に表示する」ことを目標とし、textの使い方について見ていきましょう!
以下アジェンダのように一式通して説明していきますので、ぜひ参考にしてみてください。
[基本] スクリプトからスコアを表示してみよう!
[応用] textで出来るいろいろなこと!
それではよろしくお願いいたします!
まずはtextを表示してみよう!
それでは、textの作成に入っていきましょう。
この章ではtextを作成し、任意の文字を表示させるところまでサクッと見ていきましょう!
textを作成しよう!
Hierarchy画面上で右クリック→UI→Textを選択しましょう。
上記の画面のようにCanvas・Text・EventSystemが作成されるはずです。
実行してみよう!
実はたったこれだけで、文字の表示という目的だけなら達成できています。
では早速実行してみましょう。
各自の設定により位置がずれていると思いますが、文字はちゃんと表示されているはずです。
文字を変更してみよう!
折角なので文字を変更してみましょう。
画像のように、Textの中を書き換えてみましょう。
実行結果は以下の通りです。
ちゃんと文字が変更されていますね。
例えば簡易的なゲームタイトルの表示、などならこれで済ませてしまえますね!
とても簡単です。
うまく利用しましょう!
スクリプトからスコアを表示してみよう!
続けて、スクリプトからの文字の変更方法を見てみましょう!
これが実現できれば、スコア表示や、会話文の表示など様々なことが行えますよ。
スコアの管理処理を用意しよう!
スクリプト実行用のオブジェクト作成
まずはスクリプト実行用のオブジェクトを作成します。
上記画面のように、Hierarchy上で右クリック→Create Emptyを選択しましょう。
また名前はわかりやすいようにScoreManagerにしておきましょう。
スクリプトの作成
そしたら次はスクリプトの追加です。
画面のように、AddComponent→NewScriptでスクリプトを作成しましょう。
スクリプトの名前はScoreMangerにしておきましょう。
無事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を投げ込みましょう。
ここまでできたらプログラムの実行です!
うまく行きましたね!
ここまでいけば後は簡単です。
表示しているスクリプトを変数にしてしまいましょう。
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加算する形式にしたものです。
実行してみましょう。
gif画像なので、貼ってある画像では、飛び飛びになってしまっていますが…
ちゃんとスコア表示がされていますね。
今回は時間経過で足していますが、例えば敵を倒した時にこのスコア変数へ数字を足すようにすれば、うまくゲームのスコアとして機能しそうですね!
textで出来るいろいろなこと!
最後にtextの設定を簡単にですが見てみましょうか。
設定はたくさんあるので、初心者向けの最低限のものだけ見てみましょう。
① 座標や横幅などはここで操作可能です。
② 先ほど触りましたね。textの表示文字はここから変更可能です。
③ フォントのサイズはここから変更可能です。
④ 右寄せや上寄せなどはここから設定しましょう。
⑤ 文字色はここからです。
ぜひ他にも設定を触って挙動を確認してみましょう。
まとめ
今回は、本当に単純にスコアを表示する部分のみ見てきました。
簡単なゲームのスコアならこれで作ることができると思います。
しかし、フォントの変更や特定文字のみの色変えなど、textについて学ぶことはたくさんあります。
ぜひ引き続きtextについて学んでみてください。