おさらい:ラウンドマネージャー
CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 16/56。
チャレンジ
簡単4秒間のラウンドを3回行うコイン集めです。矢印キーでPlayerを動かします(準備完了状態)。RoundManagerとCoinのスクリプトを書きましょう。Inspectorでは、RoundManagerのフィールドにパネル、テキスト、rounds(3)、roundTime(4)が設定されています。
- RoundManagerはシングルトンなので、各コインはInspectorのフィールドを使わずにアクセスできます。
- 状態は3つあります。Readyでは
readyPanelだけを表示し、roundTextにラウンド名(Round 1、次にRound 2...)を表示します。Spaceキーでラウンドを開始します。PlayingではplayPanelだけを表示し、roundTime秒間続きます。その後、次のラウンドがReadyになるか、最後のラウンドの後にゲームがFinishedになります。FinishedではfinishedPanelだけを表示し、finalTextにコイン数(Coins: 3)を表示します。再び開始することはありません。 - ラウンド中にプレイヤーが触れたコインはカウントされ、合計数が
coinsText(Coins: 2)に表示され、コインは取り除かれます。ラウンドの合間に触れたコインはカウントされず、その場に残ります。
Playを押して3ラウンドすべてプレイし、その後Checkを押してください。
自分で試してみよう
using UnityEngine;
using TMPro;
public class RoundManager : MonoBehaviour
{
public GameObject readyPanel;
public GameObject playPanel;
public GameObject finishedPanel;
public TMP_Text roundText;
public TMP_Text coinsText;
public TMP_Text finalText;
public int rounds = 3;
public float roundTime = 4f;
// Ready、Playing、Finishedの3つの状態を持つシングルトン
}