Game Manager
1.空のオブジェクトを作って、下のサンプルを付ける
2.UI関連で作ったサンプルコード(UI Manager 及び Game Object Manager)もここに付ける
3.インスペクターに各ゲームオブジェクトを紐付け
GameManager.cs
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour
{
[SerializeField] GameObjectManager gameobjectManager; // GameObject 関連
[SerializeField] PlayerTrigger playerTrigger;
[SerializeField] UIManager uiManager; // UI関連
[SerializeField] GameObject startPanel;
[SerializeField] GameObject gameClearPanel;
[SerializeField] GameObject gameOverPanel;
private void Start()
{
gameobjectManager.GameStartFinish();
}
private void Update()
{
InputSpace();
}
// Start時、Finish時 スペースボタンが押された時の処理
private void InputSpace()
{
if (startPanel.activeSelf && Input.GetKeyDown(KeyCode.Space))
{
GameStart();
}
if (gameClearPanel.activeSelf && Input.GetKeyDown(KeyCode.Space))
{
GameScene();
}
if (gameOverPanel.activeSelf && Input.GetKeyDown(KeyCode.Space))
{
GameScene();
}
}
// StartPanel をクリックするとゲームスタート
public void GameStart()
{
gameobjectManager.StartOn();
uiManager.StartPanelOn();
}
// Player が全部巣に帰るとクリア
public void GameClear()
{
if (playerTrigger.nestSheet <= 0)
{
gameobjectManager.GameStartFinish();
uiManager.GameClearPanelOn();
}
}
// Player の残機が「0」になるとゲームオーバー
public void GameOver()
{
if (playerTrigger.playerRest <= 0)
{
gameobjectManager.GameStartFinish();
uiManager.GameOverPanelOn();
}
}
// Scene を最初に戻す
public void GameScene()
{
SceneManager.LoadScene("MainScene");
}
}
サンプルコードの説明
// Start時、Finish時 スペースボタンが押された時の処理
private void InputSpace()
{
if (startPanel.activeSelf && Input.GetKeyDown(KeyCode.Space))
{
GameStart();
}
if (gameClearPanel.activeSelf && Input.GetKeyDown(KeyCode.Space))
{
GameScene();
}
if (gameOverPanel.activeSelf && Input.GetKeyDown(KeyCode.Space))
{
GameScene();
}
}
スペースキーが押された時の処理です
// StartPanel をクリックするとゲームスタート
public void GameStart()
{
gameobjectManager.StartOn();
uiManager.StartPanelOn();
}
スタートパネルが押された時の処理です。
スタートパネルの Event Trigger に設定してください
// Player が全部巣に帰るとクリア
public void GameClear()
{
if (playerTrigger.nestSheet <= 0)
{
gameobjectManager.GameStartFinish();
uiManager.GameClearPanelOn();
}
}
プレイヤーが巣に全部帰った時の処理です
// Player の残機が「0」になるとゲームオーバー
public void GameOver()
{
if (playerTrigger.playerRest <= 0)
{
gameobjectManager.GameStartFinish();
uiManager.GameOverPanelOn();
}
}
プレイヤーの残機が0になった時の処理です
// Scene を最初に戻す
public void GameScene()
{
SceneManager.LoadScene("MainScene");
}
ゲームクリアーパネル及びゲームオーバーパネルを押した時の処理です
ゲームクリアーパネル及びゲームオーバーパネルの Event Trigger に設定してください
最後に
ざっくり書いただけなので、わかりにくいと思います
わからなければ、ご連絡ください
最初のページ(フロッガー風ゲームの作り方)に書き込みお願いします