脱出ゲーム
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 70/71。
コードロックのある脱出ルームです。床には灰色の圧力板が3枚あり、北側の壁にあるドアは、プレイヤーが正しい順番、つまりプレート1、プレート2、プレート3の順に踏んだときだけ開きます。部屋のどこにも、どのプレートがどれなのかは書かれていません。間違ったプレートを踏むと、コードは最初からやり直しになり、すべてのプレートが1秒間赤く点滅します。開いたドアは数秒間開いたままになった後、再び閉まります。ただし、プレイヤーがいるときに閉まることはありません。プレイヤーが戸口に立っている間、ドアは待機します。
Playerスクリプトは準備済みです。矢印キーでプレイヤーが移動します。プレイヤーにはPlayerというタグが設定され、Playerレイヤーに配置されています。2つのスクリプトを作成します。各プレートにPlate、LockにCodeLockを設定します。
チャレンジ
難しいプレートをコードに接続し、コードを1、2、3の順に設定しましょう。
Plateで、Playerが入ったときに、codeLock.Press(number);を呼び出します。Pressでは、int next = 1を使います。一致したら"Plate " + numberをログに出力して1を加算します。3の後はUnlockedをログに出力し、nextをリセットします。- それ以外の場合は
Wrong plateをログに出力し、nextをリセットして、コルーチンを実行します。プレートをColor.redにし、1秒後にColor.grayにします。
「プレイ」を押して、順番を見つけましょう。その後、「確認」を押します。
自分で試してみよう
using System.Collections;
using UnityEngine;
public class CodeLock : MonoBehaviour
{
[SerializeField] private Renderer[] plates;
[SerializeField] private GameObject door;
[SerializeField] private Transform doorway;
[SerializeField] private float openTime = 4f;
public void Press(int number)
{
// コードを確認し、間違っていたらplatesを点滅させ、3番目のplateの後にdoorを開ける
}
}
物理演算とゲームプレイのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド