こんにちは!Unityの入門書で通称”ヒヨコ本”として親しまれている”Unity5入門 最新開発環境による簡単3D&2Dゲーム制作 “の作例に色々とゲーム要素を追加してオリジナルゲームに仕上げる内容を連載をしています。
Chapter2:インターフェイスと使い方
Chapter3:Unityを使ってみよう!
Chapter4:キャラクターを動かしてみよう!
Chapter5:ゲームのUIを作ってみよう!
Chapter6:ゲームを作ろう!(1)
Chapter7:ゲームを作ろう!(2)
Chapter8:2D機能を使ってみよう!
ゲームスコアをUIオブジェクトで作成して表示する
前回は”リトライボタンをクリックしたらゲームをリセットする“というのを行いました。今回はゲームスコアをUIオブジェクトで作成して画面に表示してみたいと思います。
テキストUIオブジェクトを作成
[Hierarchy]ウィンドウ > [Create]ボタン > UI > Text を選択。作成したTextを右クリック > Rename を選択”Text Score”に変更します。
テキストUIオブジェクトの階層を設定
作成したUIオブジェクト”Text Score”はタイトル画面で表示されないように階層を変更します。
下記の通り、UIオブジェクト”Panel Title”よりも上の階層に移動します。
テキストの表示位置を調整
[Hierarchy]ウィンドウ > UIオブジェクト”Text Score”を選択。[Inspector]ウィンドウ > Rect Transform 左側にあるAnchor Presetsをクリック。Anchor Presetが表示されたらRight / Top をクリック。余白をクリックしてAnchor Presetを閉じる。
下記の通り数値を設定します。
Pos X -320 / Pos Y -20 / Width 300 / Height 60 / Pivot X 0 / Y 1
テキストのサイズを調整
[Hierarchy]ウィンドウ > UIオブジェクト”Text Score”を選択。[Inspector]ウィンドウ > Text (Script) > Textフィールドに”SCORE: 000″を入力。
[Inspector]ウィンドウ > Text (Script) > Character > Font Size 50に設定。
動作確認
スタートボタンをクリックしてタイトル画面が非表示になると、次のように画面右上に得点が表示されます。
スコアのテキストを更新するスクリプトを作成
得点を表示するUIオブジェクトが用意できたので、次はスクリプトを用意しましょう。
スコアのテキストを更新するスクリプトを作成して”Canvas”割り当てる
[Hierarchy]ウィンドウ > オブジェクト”Canvas”を選択。[Inspector]ウィンドウ > [Add Component]ボタン > New Scriptを選択して下記の通り入力。[Create and Add]ボタンをクリック。
Name: Score / Language: C Sharp
スクリプト”Score”の編集
[Project]ウィンドウ > スクリプト”Score”をダブルクリックでエディタで開き、下記コードを入力します。using System.Collections; using System.Collections.Generic; using UnityEngine; // UI関連クラスを使用できるようにする using UnityEngine.UI; public class Score : MonoBehaviour { // UIオブジェクト"Text Score"を格納する変数 public GameObject textScore; // テキストコンポーネントを格納する変数 private Text text; // ゲームの初期処理 void Start() { // 変数"textScore"に格納されたUIオブジェクトの // "Text"コンポーネントを取得して変数"text"に格納 text = textScore.GetComponent<Text>(); } // ゲーム実行中の繰り返し処理 void Update() { // "Text"コンポーネントの"text"フィールドにスコアの値を代入 //(スクリプト"Manager"の変数"score"の値を文字列として参照) text.text = "SCORE: " + Manager.score.ToString(); } }
コンポーネントの変数”Text Score”スロットにUIオブジェクト”Text Score”を割り当てる
[Hierarchy]ウィンドウ > Canvas を選択。[Inspector]ウィンドウ > Ball Count (Script)コンポーネントに下記の通り変数”Text Score”フィールドが表示されていることを確認します。[Hierarchy]ウィンドウ > Canvas > Text Score をドラッグ&ドロップで変数”Text Score”フィールドに割り当てます。
動作確認
スクリプト”Manager”の変数”Score”の値を参照できているか確認しましょう。[Hierarchy]ウィンドウ > Manager を選択。[Inspector]ウィンドウ > Manager (Script)コンポーネント
> “Initial Score”フィールドに”777″と入力しておきます。
ゲームを再生してゲームスコアに”SCORE: 777″と表示されていればOKです。
コメント
すみませんが漢字読めないので教えてください!
いつもありがとうございます!