Canvas ゲームオブジェクト内にスコア表示用のゲームオブジェクトを設置しましたので、次は、このスコアの表示を
更新していく処理を実装していきます。
スコアの点数表示は txtScore ゲームオブジェクトにアタッチされているText コンポーネントによって制御されています。
この
Text コンポーネントに対しての紐づけを行い、命令を出すことでスコアの表示制御を行います。
今回の設計では、UI関連の処理を担当する新しいスクリプトである UIManager を用意して、得点の表示を更新する UpdateDisplayScore メソッドを用意します。
このメソッド中で、Textコンポーネントへの処理を実行して、得点の表示を更新するようにします。
一連の処理を1つのメソッド単位で用意しておくことで、外部のスクリプトからも、この処理を行いたい場合には、
メソッドを呼び出すことで実行することが出来ます。
得点を獲得する処理は ScoreManager スクリプトに AddScore メソッドとして実装してありますので、
この部分にさらに処理を追加し、サークルを通過して得点を獲得したら、
UIManager スクリプトの UpdateDisplayScore メソッドに対して実行命令を出します。
UIManager スクリプトの UpdateDisplayScore メソッドでは、txtScore ゲームオブジェクトの持つ Text コンポーネントの Text プロパティに命令を出して値を書き換えます。
この挙動がゲーム画面に表示されるようになるため、ゲーム上は、
サークルを通過するたびにスコアを更新していくように見えます。
<スコア表示までの処理の流れ>
1.UIManager スクリプトを作成し、スクリプトを通じて、txtScore ゲームオブジェクトの Text コンポーネントを操作できる状態にする
2.UIManager スクリプト内に UpdateDisplayScore メソッドを public 修飾子で用意し、この処理において Text コンポーネントの Text プロパティの得点を更新する。
そのため、このメソッドでは int 型の引数を用意し、その値を受け取り Text プロパティに代入できるようにする
3.ScoreManager スクリプトの AddScore メソッドを修正し、UIManager スクリプトの UpdateDisplayScore メソッドに対して実行命令を出す。
このとき、totalPoint 変数を引数として渡すことで、UpdateDisplayScore メソッドで totalPoint 変数の値を利用できる状態にする
以上のように、新しいスクリプトの作成と、ScoreManager スクリプトの修正を行った結果
4.UIManager スクリプトの UpdateDisplayScore メソッドが実行されて、引数として受け取った totalPoint 変数の値を
txtScore ゲームオブジェクトにアタッチされている Text コンポーネントのプロパティに代入して更新する命令を行う
このような処理の流れ・ロジックになります。
処理は順序だてて、順番に1つずつ追加していくことを考えましょう。
それではまず最初に、ScoreManager スクリプトがメソッドを実行するためは、実行用のメソッドを定義しておく必要がありますので
UIManager スクリプトを作成し、その中にメソッドを定義します。
自分で処理を考えて組み立てていく際には、教材の手順を参考にしてください。
処理の全体像を作ってから、処理の最後の部分(ゴール地点)から作成を始めると作りやすいです。