Menu
CoddyTech

振り返り:ドアの状態

CoddyのUnityジャーニー「Unityにおけるゲームアーキテクチャ」セクションの一部。レッスン 32/50。

challenge icon

チャレンジ

中級

鍵のかかった城の扉。矢印キーでPlayerを移動させ、金色のKeyを拾うと(両方準備完了)、door.Unlock()が呼び出されます。IStateとこの章のStateMachineはプロジェクトに含まれています。Door.csには、Inspectorの値(closedY 1.5、openY 4、speed 2、stayOpen 2、reach 2.5)、machineフィールド、PlayerNear()があります。扉に5つの状態を持たせます。DoorStates.cs内のクラスとして、LockedState、ClosedState、OpeningState、OpenState、ClosingStateという名前にします。

  • 扉はLocked状態で始まります。近くでスペースキーを押す(PlayerNear())と、Lockedをログに出力するだけです。Unlock()はロックされた扉をClosed状態にし、それ以外の状態では何もしません。
  • Closed:扉の近くでスペースキーを押すと、開き始めます。
  • Opening:扉はspeedの速度で上昇し、y座標がopenYになるとOpen状態になります。
  • Open:stayOpen秒経過すると、閉まり始めます。
  • Closing:扉はspeedの速度で下降し、y座標がclosedYになるとClosed状態になります。下降中に近くでスペースキーを押すと、その位置から再び開きます。

Playを押して、ロックされた扉を試し、鍵を取りに行き、扉を開けて通り抜けてから、Checkを押してください。

自分で試してみよう

using UnityEngine;

// LockedState、ClosedState、OpeningState、OpenState、ClosingState

Unityにおけるゲームアーキテクチャのすべてのレッスン