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):
指定したオブジェクトを画面から消去(非表示)させます。

コメント