6.スクリプトの記述②
スクリプトの記述②
次に「GameFlow」のScriptに以下のコードをコピーして、今のコードの上から上書きしてください。
using UnityEngine;
using TMPro; // 追加: TextMeshProを使うために必要
public class GameFlow : MonoBehaviour
{
public GameObject startPanel;
public GameObject gamePanel;
public GameObject resultPanel;
public TextMeshProUGUI scoreText; // スコア表示用の枠
private int score = 0; // スコアを保存する変数
void Start()
{
// ゲーム起動時はスタート画面から
ShowStart();
}
public void ShowStart()
{
startPanel.SetActive(true);
gamePanel.SetActive(false);
resultPanel.SetActive(false);
score = 0; // スコアをリセット
}
public void ShowGame()
{
startPanel.SetActive(false);
gamePanel.SetActive(true);
resultPanel.SetActive(false);
score = 0;
UpdateScoreText();
}
// ボタンを押した時に呼ぶ関数
public void AddScore()
{
score++;
UpdateScoreText();
}
void UpdateScoreText()
{
scoreText.text = "Score: " + score;
}
public void ShowResult()
{
startPanel.SetActive(false);
gamePanel.SetActive(false);
resultPanel.SetActive(true);
}
}
すると「GameManager」のInspectorに新たに「Score Text」という枠ができました。
ここに「Score Text」をドラッグ&ドロップして入れます。
「ClickButton」にAddScore()を登録
Hierarchyの ClickButtonに、連打機能を紐付けます。
Hierarchy で 「ClickButton」 を選択します。

Inspector の一番下 「On Click ()」 に「+」を押して枠を追加します。
Hierarchy から 「GameManager」 をその枠へドラッグ&ドロップします。
右側のドロップダウンで 「GameFlow」→「AddScore()」 を選択します。
これは以前やった「StartButton」の設定と同じ工程です。

▶して確認してみましょう。
「ScoreText」を選択して、「Inspector」の「TextInput」を見てください。うまくいっていればScoreがどんどん増えていきます。
ざっくりコード解説2
public void ShowGame()
{
startPanel.SetActive(false);
gamePanel.SetActive(true);
resultPanel.SetActive(false);
score = 0; // スコアをリセット
UpdateScoreText(); // スコア表示を初期化
}
・ShowGame():
スタート画面からゲーム画面へ切り替えるための関数です。
役割:
スタート画面を隠し、ゲーム画面を表示します。また、score = 0; でスコアをリセットし、UpdateScoreText() を呼ぶことで、画面上のスコア表示を「0」に初期化しています。
public void AddScore()
{
score++; // スコアに1を足す
UpdateScoreText(); // 増えたスコアを画面に反映
}
・AddScore():
「ボタンを押したとき」に呼び出される関数です。
役割:
score++ でスコアの数値を1増やします。その後、UpdateScoreText() を呼んで、画面上のテキストを最新のスコアに書き換えています。
ポイント:
ボタン(Buttonオブジェクト)の OnClick() イベントにこの関数を登録することで、プレイヤーがボタンをクリックするたびにスコアが増える仕組みになります。
void UpdateScoreText()
{
scoreText.text = "Score: " + score; // 数値を文字に変換して表示
}
・UpdateScoreText():
スコアの数値をテキスト画面に反映させるための「更新用」関数です。
役割:
scoreText.text = “Score: ” + score; という命令で、プログラム内の数値(score)を、画面上のテキスト(scoreText)に文字として送っています。
ポイント:
スコアが増えるたびにこの処理が必要になるため、関数として独立させることで、他の場所から何度でも呼び出せるようにしています。
public void ShowResult()
{
startPanel.SetActive(false);
gamePanel.SetActive(false);
resultPanel.SetActive(true);
}
・ShowResult():
ゲーム終了時に、リザルト(結果)画面へ切り替えるための関数です
役割: 他のパネルを隠して resultPanel だけを表示します

コメント