目的:対応した色の鍵を入手することでドアを開ける。

インベントリシステムの作成
ヒエラルキー上で右クリック -> 空のオブジェクトを作成

Add Component -> Inventory スクリプトを追加し、
“Persistent” をオフにします。


インベントリ画面の作成
ヒエラルキー上で右クリック -> UI -> Canvas を作成


作成したCanvasの子として空のオブジェクトを作成。


作成した子オブジェクトの中にInventory Displayコンポーネントを追加し、
Number of Rows = 1 , Number of Colums = 3 とします。
その後、下のほうにある “Auto setup Inventory display panel” ボタンをクリックします。


ゲーム画面を確認するとインベントリボックスが画面中央に 3つ作成されているので、Rect Transformで適切な位置に位置変更します。


鍵の作成
Assetsフォルダ内に鍵の画像をドロップします。

Assetsフォルダ内で右クリック -> Create -> MoreMountains -> CorgiEngine -> InventoryEngineKey で鍵となるオブジェクトを作成。

Item ID を設定します。(これは後に参照する必要があるので、覚えておきます。)
その下にある Icon に画像をドロップします。

鍵の画像をシーン内にドロップ。”Box Collider 2D” と “Item Picker” コンポーネントを追加します。

Box Collider 2D : Is Trigger を True
Item Picker : Item = InventoryEngineのItemsフォルダ内に作成した鍵オブジェクトを選択。”Disable Object When Depleted” を True

鍵を取得すると右上のインベントリディスプレイに鍵が表示されます。

鍵で開くドアを作成
前回作成した動くドアを編集していきます。
“Moving Platform” コンポーネントの Cycle Option = Only Onceにします。

鍵を持った状態である位置に着いたらドアが開く仕組みを作成します。
ヒエラルキー上で右クリック -> 空のオブジェクトを作成。
“Box Collider 2D” と “Key Operated Zone” コンポーネントを追加。
“Box Collider 2D” : Is Trigger を True にします。

“Key Operated Zone” を以下のように変更します。
Activation Conditions : Auto Activation = True

Key : “+”を押して、動くドアオブジェクトをドロップ。
“MovingPlatform.ToggleMovementAuthorization”メソッドを選択。
Key ID : 作成したKeyIDを入力。

BlueKeyを所持した状態で下画像の領域に到達したとき、ドアが開くように設置します。

プレイヤーに取得したアイテムを使用させる
プレイヤーとなるプレハブを編集します。 (作成方法は割愛)
“Character Inventory” コンポーネントを追加。Main Inventory Nameを本記事の最初に作成したインベントリシステム名にします。
これでこのプレイヤーは MainInventoryに保持されているアイテムを使用することができます。

デモプレイ
鍵を取得していない状態だとドアが開きませんが、取得後はドアが自動で開きます。

オブジェクトを複製して、3種類の鍵を作成しました。
各ドアの色に対応した鍵を入手しないとドアが開きません。

各オブジェクトをプレハブ化するときは “Key ID”があっているか。
“Key Actrion()”のオブジェクトがセットされているか注意が必要です。



コメント