Unity で特定のキーを使用して引き出しや食器棚を開ける

このチュートリアルでは、Unity に、特定のキーを使用して引き出しや食器棚を開けることができるシンプルな対話型システムを作成します。このシステムにより、プレイヤーは指定されたキーを押してオブジェクトを開いたり閉じたりすることで、シーン内のオブジェクトを操作できるようになります。

前提条件

  • Unity ハブが取り付けられています
  • Unity エディター (バージョン 2019 以降)
  • C# の基本的な知識

プロジェクトのセットアップ

  1. Unity ハブを開き、新しい Unity プロジェクトを作成します。
  2. 引き出し、食器棚、または操作したいオブジェクトを使用してシーンをセットアップします。

インタラクティブシステムの実装

ステップ 1: インタラクティブ スクリプトを作成する

'InteractiveObject.cs'

using UnityEngine;

public class InteractiveObject : MonoBehaviour
{
    public KeyCode interactionKey;
    public GameObject openState;
    public GameObject closedState;

    private bool isOpen = false;

    void Update()
    {
        if (Input.GetKeyDown(interactionKey))
        {
            ToggleObjectState();
        }
    }

    void ToggleObjectState()
    {
        isOpen = !isOpen;
        openState.SetActive(isOpen);
        closedState.SetActive(!isOpen);
    }
}

ステップ 2: オブジェクトの状態を設定する

  1. 各引き出しまたは食器棚の子オブジェクトとして 2 つの空のゲームオブジェクトを作成します。一方に "OpenState" 、もう一方に "ClosedState" という名前を付けます。
  2. これらの子オブジェクトの初期位置を設定して、引き出しまたは食器棚の開閉状態を表します。
  3. これらの子オブジェクトを 'InteractiveObject.cs' スクリプトの 'openState' および 'closedState' 変数に割り当てます。

ステップ 3: インタラクション キーを割り当てる

  1. 'InteractiveObject.cs' スクリプトがアタッチされているシーン内のオブジェクトを選択します。
  2. 「インスペクター」ウィンドウで、'interactionKey' 変数を目的の KeyCode (たとえば、"E" キーの場合は KeyCode.E) に設定します。

ステップ 4: システムのテスト

  1. Unity でシーンを再生します。
  2. 引き出しや食器棚に近づきます。
  3. 指定したキー ("E" など) を押して開閉します。

結論

特定のキーを使用して引き出しや食器棚を開閉できる対話型システムを Unity に実装することができました。このシステムは、アニメーション、サウンド効果、またはより複雑なインタラクションを追加して、プレーヤーのエクスペリエンスを向上させることでさらに拡張できます。自由に実験して追加機能を追加して、インタラクティブなオブジェクトをさらに魅力的にしてください。

おすすめの記事
Poppy Playtime からインスピレーションを得て Unity で GrabPack を作成する
Unity でバレットタイムエフェクトを作成する
Unity でインタラクティブなオブジェクトを作成する
Unity でのキネティック インタラクションの実装
Unity のインベントリを使用しないピック アンド ドロップ システム
Unity で車にプレーヤー エントリを追加する
Unity でのランタイム アニメーター コントローラーの使用