Unityゲームの作り方メモ脱出ゲーム

Unity3D脱出ゲームの作り方⑨ |アイテムを設置するギミック

Unity

1. はじめに

脱出ゲームを作るとき、鍵を開けたり、パズルを解いたりする仕掛け(ギミック)が重要ですよね。その中でも「アイテムを特定の場所にセットしてイベントを発生させる」という仕組みは、よく使われる定番のギミックです。

例えば、宝石を台座に置いたら隠し扉が開く、特定のアイテムを机の上に置いたら次のヒントが現れる……そんな仕掛けを作ることで、ゲームの面白さがぐっと増します。

そこでこの記事では、Unityで「アイテムを台座にセットする」ギミックを作る方法を解説します!
具体的には、次のようなステップで進めていきます。

この仕組みができると、脱出ゲームのギミックの幅が広がります!アイテムを正しくセットしないと次に進めないようなパズル要素を作ることもできるので、ぜひマスターしてみてください。

では、さっそく台座とアイテムの作成から始めましょう!




2. 台座とアイテムの作成

脱出ゲームでは、特定の場所にアイテムをセットするギミックが重要です。ここでは、アイテムとそれをセットする台座を作成していきます。


2.1 アイテムの作成

まずは、セットするアイテムを作成します。

  1. Hierarchyウィンドウを開く
  2. 右クリック → 「3D Object」 → 「Cube」 を選択
    → シーンにキューブが作成されます。
  3. Inspectorウィンドウでサイズと色を調整
    • サイズ: (0.5, 0.5, 0.5) くらいに小さくする
    • 色: Material を作成して好きな色を適用(例えば赤色)

👉 このCubeが「セットするアイテム」になります。

次に、このアイテムをアイテムデータベースに登録しておきましょう。

  1. 「New Item Database Entity」に登録
    • New Item Database Entityを選択
    • InspectorItem Name を「Cube」などに設定
  2. スクリプト「PickupObject」をアタッチ
    • インスペクター画面からアイテムの種類を選択
    • EventTrigger を追加し設定

これで、ゲーム内で使用するアイテムの準備が完了しました!


2.2 台座の作成

次に、アイテムをセットする台座を作成します。

  1. Hierarchyウィンドウを開く
  2. 右クリック → 「3D Object」 → 「Cube」 を選択
    → 台座の土台部分を作成
  3. Inspectorで以下のように調整
    • サイズ: (1, 0.2, 1)
    • 色: 灰色(Materialを作成し、適用)
    • 名前: Pedestal に変更

続いて、アイテムをセットする場所(黒色の部分)を作ります。

  1. 「Pedestal」を右クリック → 「3D Object」 → 「Cube」 を選択
    → 台座の上にもう1つCubeを作成
  2. Inspectorで以下のように調整
    • サイズ: (0.8, 0.1, 0.8)
    • 位置: (0, 0.15, 0)(少し上に配置)
    • 色: 黒色(Materialを作成し、適用)
    • 名前: PedestalTop に変更
  3. ズームカメラを設定する
    • 「Camera」を作成して台座が映るように調整
    • 「ZoomCameraSetter」を灰色のCubeにアタッチして設定
    • EventTrigger を追加し設定

👉 この PedestalTop をクリックしたときにアイテムをセットする仕組みを作ります。


2.3 アイテムをセットしたときに表示するオブジェクト

アイテムをセットしたとき、視覚的にわかるようにするため、セットされたアイテムを表示するオブジェクトを事前に作成して非表示にしておきます。

  1. Hierarchyウィンドウで「PedestalTop」を右クリック → 「3D Object」 → 「Cube」
  2. Inspectorで以下のように調整
    • サイズ: (0.5, 0.5, 0.5)
    • 色: アイテムと同じ(赤色)
    • 名前: SetItemDisplay
    • 位置: PedestalTop の中心に配置
  3. Inspectorの「Mesh Renderer」コンポーネントのチェックを外して非表示にする

👉 アイテムがセットされたら、この SetItemDisplay を表示する仕組みをスクリプトで実装します。

3D Props: Adorable Items で脱出ゲームのアイテムをもっと魅力的に!

Unityで脱出ゲームを作るなら、アイテムの見た目にもこだわりたいですよね?
そんなときにおすすめなのが、3D Props: Adorable Items です!

このアセットを使えば、脱出ゲームにぴったりなかわいい3Dアイテムをすぐに導入できます。


🎨 アセットの魅力ポイント!

高品質な3Dモデル
→ 立体感のあるアイテムがゲームの世界をよりリアルに演出!

豊富なアイテム種類
→ 脱出ゲームで使える鍵、宝石、ポーションなど、多彩なオブジェクトが収録!

シンプルで可愛いデザイン
→ プレイヤーに親しみやすい、魅力的なアイテムデザイン!

すぐに使える Prefab
→ Unityにインポートするだけで、そのままアイテムとして使えるので手間いらず!

ゲームのクオリティアップ
→ 自作のアイテムを作る手間を省いて、ゲームの完成度を一気に向上 できます!


🎮 脱出ゲームでの活用例

  • 🔑 鍵アイテム → 特定の扉を開く仕掛けに!
  • 💎 宝石アイテム → パズル要素に組み込むことでゲーム性アップ!
  • 🏺 レアアイテム → コレクション要素や特殊アイテムとして活用!

見た目が魅力的なアイテムを使えば、プレイヤーの没入感もアップ
「見つけたアイテムをセットしたくなる!」そんなワクワク感を作り出せます✨


🔗 アセットの詳細はこちら

このアセットを使って、脱出ゲームをもっと魅力的に仕上げましょう!🚀


これで、台座とアイテムの準備が完了しました!
次は、スクリプトを作成してアイテムをセットする仕組みを作っていきましょう。




3. アイテムをセットするスクリプトの作成

アイテムを設置する台座を作ったので、次はアイテムをセットするスクリプトを作成していきます。このスクリプトを使えば、特定のアイテムを持っているときに台座をクリックすることで、アイテムを設置し、イベントを発生させることができます。


3.1 スクリプトの作成

まず、SetItem というスクリプトを作成します。

  1. プロジェクトウィンドウを右クリック
  2. 「Create」→「C# Script」を選択
  3. スクリプトの名前を SetItem に変更

作成した SetItem.cs を開いて、以下のコードを入力してください。

using UnityEngine;
using UnityEngine.Events;

public class SetItem : MonoBehaviour
{
    [SerializeField] GameObject setItemObj; // 設置するオブジェクト
    public UnityEvent SetEvent; // アイテム設置時に発生させるイベント

    public void OnClickObj()
    {
        // アイテム「Ruby」が選択されているかチェック
        if (ItemBox.instance.CheckSelectItem(Item.Type.Cube))
        {
            // 選択中のアイテムを使用する
            ItemBox.instance.UseSelectItem();
            // アイテムをセットする処理を実行
            ItemSet();
        }
    }

    void ItemSet()
    {
        Debug.Log("set"); // デバッグログを出力
        setItemObj.SetActive(true); // 非表示だったオブジェクトを表示
        SetEvent.Invoke(); // 設定されたイベントを実行
    }
}

3.2 スクリプトの適用

次に、作成した SetItem スクリプトを台座の黒色のCubeに適用していきます。

  1. 黒色のCubeを選択
  2. SetItem.cs を黒色のCubeにドラッグ&ドロップしてアタッチ
  3. インスペクターで setItemObj に、非表示にしていたオブジェクトをドラッグ&ドロップ
  4. SetEvent に、アイテムを設置したときに発生させたいイベントを設定
  5. EventTrigger を追加し、OnClickObj() を設定

これで、特定のアイテムを台座にセットする仕組みが完成しました!
さらに発展させたい場合は、異なるアイテムをセットできるようにするセット後に新たなギミックを動作させる などを試してみてください!




4. 動作確認

ここまでで、アイテムをセットする台座の作成やスクリプトの設定が完了しました。次に、実際にUnityを再生して、動作確認をしてみましょう。

4.1 ゲームを再生する

まずは、Unityエディタの**再生ボタン(▶)**をクリックしてゲームを開始します。
このとき、以下のポイントをチェックしながら進めてください。

アイテムが正しく選択できるか
黒色のCubeをクリックすると、アイテムがセットされるか
アイテムをセットしたときにイベントが発生するか(ログが出るか)


4.2 正しく動作しているかチェックする

  1. アイテムを選択する
    • ゲーム内でアイテムを選択できるようにしている場合、該当のアイテム(例:Ruby)を選択状態にしてください。
  2. 台座の黒色のCubeをクリックする
    • 選択したアイテムを持った状態で、台座の黒色の部分をクリックします。
  3. デバッグログを確認する
    • 正しく動作すると、コンソールに set というログが表示されるはずです。
    • ログが表示されていれば、スクリプトが正常に動作している証拠です!

4.3 トラブルシューティング

もし、期待通りに動作しない場合は、以下のポイントを確認してみてください。

🔹 黒色のCubeに「SetItem」スクリプトがアタッチされているか
SetItem スクリプトがアタッチされていないと、クリックしても何も起こりません。

🔹 setItemObj に非表示のオブジェクトが設定されているか
setItemObj に適切なオブジェクトが割り当てられているか、インスペクターで確認してください。

🔹 EventTrigger の設定が正しいか
EventTriggerSetItem.OnClickObj() が正しく設定されているかチェックしてください。

🔹 アイテムの種類が正しいか
ItemBox.instance.CheckSelectItem(Item.Type.Ruby) の部分で、アイテムの種類が合っているか確認しましょう。
異なるアイテムをセットしたい場合は、対応する Item.Type を変更してください!


以上の確認を行い、アイテムをセットすると台座のオブジェクトが表示されるようになれば成功です! これで、アイテムを設置するギミックが完成しました。




よくある質問(FAQ)

Q
アイテムをセットしても反応しないのですが?
A

ItemBox.instance.CheckSelectItem(Item.Type.Ruby) の部分でアイテムの種類が正しく設定されているか確認しましょう。

Q
別のアイテムをセットしたときの処理を追加できますか?
A

if 文を増やして、異なる Item.Type をチェックするようにすれば可能です。

Q
一度セットしたアイテムを取り外すことはできますか?
A

setItemObj.SetActive(false); を別の関数に記述し、取り外し用のボタンを作成すれば可能です。

タイトルとURLをコピーしました