『【初心者向け】Unityで連打ゲームを作る全手順まとめ』5.スクリプトの記述①

5.スクリプトの記述①

ここから先は「なんでその操作するの?」「そのコードの意味は何?」といった疑問が何回も出てくるところです。しかしこの疑問は先にゲームを完成させないと理解できないものばかりです。

まず第一の目的は「ゲームを完成させること!」

その後から疑問の解消をしていきましょう。

スクリプトの記述①

下の「Project」ウィンドウにある先ほど作った「GameFlow 」をダブルクリックして開いてください。

このようにVisualStudioが開きました。

ここに以下のコードをコピペして貼り付けてみてください。

public class GameFlow : MonoBehaviour
{
    // [1] パネルを登録するための「枠」を用意する
    public GameObject startPanel;
    public GameObject gamePanel;
    public GameObject resultPanel;

    // [2] ゲーム開始時に最初に呼ばれる(自動実行)
    void Start()
    {
        ShowStart(); // 最初はスタート画面を表示
    }

    // [3] スタート画面を表示する(他のパネルは隠す)
    public void ShowStart()
    {
        startPanel.SetActive(true);  // 表示
        gamePanel.SetActive(false);  // 非表示
        resultPanel.SetActive(false); // 非表示
    }

    // [4] ゲーム画面を表示する
    public void ShowGame()
    {
        startPanel.SetActive(false);
        gamePanel.SetActive(true);
        resultPanel.SetActive(false);
    }

}

貼り付けたら必ず「Ctrl+S」で保存をしましょう。

では元に戻って「Hierarchy」にある「GameManager」を選択し、左側の「Inspector」を見てください。

「GameFlow」のScriptに「StartPanel」「GamePanel」「ResultPanel」の3つの枠が現れました。

今のままでは、プログラムは「どのパネルを消したり出したりすればいいのか」を知りません。

一番最初に作った「Hierarchy」にある「StartPanel」「GamePanel」「ResultPanel」をさっきの枠にドラッグ&ドロップしてください。

これで、プログラムが「あのパネルたちのことね!」と認識できるようになります。

「StartButton」に「ShowGame()」を登録

次に、スタートボタンを押した時の動作を決めます。

Hierarchy」で、StartPanel の中にある 「StartButton」 を選択します。

「Inspector」を一番下までスクロールし、 「On Click ()」 という項目を探します。

「+」ボタンをクリックします。

「None (Object)」と書かれた枠に、Hierarchyから 「GameManager」 をドラッグ&ドロップして入れます。

その右側のドロップダウン(No Function)をクリックします。

メニューから 「GameFlow」→「ShowGame()」 を探してクリックします。

この状態で、画面上部の 「▶(再生ボタン)」 を押してみてください。「StartButton」をクリックして、画面が切り替われば成功です。

ざっくりコード解説1

void Start()
    {
        ShowStart(); // 最初はスタート画面を表示
    }

    // [3] スタート画面を表示する(他のパネルは隠す)
    public void ShowStart()
    {
        startPanel.SetActive(true);  // 表示
        gamePanel.SetActive(false);  // 非表示
        resultPanel.SetActive(false); // 非表示
    }

    // [4] ゲーム画面を表示する
    public void ShowGame()
    {
        startPanel.SetActive(false);
        gamePanel.SetActive(true);
        resultPanel.SetActive(false);
    }
  • void Start():
    ゲームが開始された瞬間に一度だけ実行されるメソッドです。ここでは、「ゲームが始まったら、まずスタート画面を表示する」という初期状態を決めています。
  • public void ShowStart():
    どこからでも呼び出せるように public にしています。
  • .SetActive(true):
    指定したオブジェクト(この場合は startPanel)を画面に表示させます。
  • .SetActive(false):
    指定したオブジェクトを画面から消去(非表示)させます。

コメント

タイトルとURLをコピーしました