サバイバルナイト
CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 59/60。
生存者が暗い野原に立ち、夜の間ずっとコウモリが襲ってきます。野原の四隅のいずれかから、数秒おきに1匹ずつ現れます。コウモリはそれぞれ生存者に向かってまっすぐ飛び、最初に生存者へたどり着いたコウモリが夜を終わらせます。画面上部の時計は夜明けまでの秒数を数えます。それまで生き延びれば勝ちです。「一時停止」ボタンを押すとすべてが停止し、夜が終わったら「もう一度プレイ」で新しい夜が始まります。
Moveアクションで生存者を歩かせるPlayerスクリプトはすでに書かれています。GameManagerとBatを書きましょう。
チャレンジ
難しいサバイバルナイトを開始します。
GameManager: シングルトンのInstance、public enum State { Playing, Paused, Won, Lost }、およびpublic State state。- プレイ中は、
nightLengthのカウントダウン(切り上げ)をDawn in 12と表示し、spawnEvery秒ごとにランダムなスポーン地点にコウモリを出現させます。Lose()はLostを設定します。 Bat: プレイ中は、プレイヤーと同じ高さでspeedの速さでプレイヤーに向かって飛びます。reach以内に入ったら、Lose()を呼び出します。
「プレイ」を押すと、コウモリがやってきます。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public class GameManager : MonoBehaviour
{
public float nightLength = 15f;
public float spawnEvery = 2f;
public GameObject batPrefab;
public Transform[] spawnPoints;
public TMP_Text dawnText;
public Button pauseButton;
public GameObject pausePanel;
public GameObject endPanel;
public TMP_Text endText;
public Button restartButton;
}
本格的なゲームを作るのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド