Menu
CoddyTech

振り返り:インタラクトキー

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

challenge icon

チャレンジ

簡単

プレイヤーにインタラクトキーを設定します。矢印キーでPlayerを歩かせ(Mover.csは準備済み)、Spaceキーで、使用可能な範囲内にある最も近いものを使えるようにします。次の部分を作成してください。

  • IInteractable:1つのメソッドvoid Interact()を持つインターフェース。
  • Door:使うたびに開閉します。開くとy軸を中心に90度回転し、Door openedをログに出力します。閉じると元の向きに戻り、Door closedをログに出力します。
  • Chest:最初に使うとFound 5 coinsをログに出力して、中身を空にします(coinsはInspectorで設定します)。それ以降に使うと、毎回The chest is emptyをログに出力します。
  • Lever:使うたびにbridge(Inspectorで設定するGameObject。開始時は非表示)をオンまたはオフに切り替え、Lever pulledをログに出力します。
  • Interactor(Player上):Spaceキーが押されたとき(Input SystemのKeyboard.currentで読み取ります)、Physics.OverlapSphereを使ってreach(1.5)以内のコライダーを探し、IInteractableを持ち、位置がプレイヤーに最も近いものにInteract()を呼び出します。範囲内に何もなければ、何も起こりません。

プレイを押して、歩き回りながらすべてを使い、その後チェックを押してください。

自分で試してみよう

using UnityEngine;
using UnityEngine.InputSystem;

// Spaceは手の届く範囲で最も近いものを使います。
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;
}

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