今回は、誰でも簡単に作れるシンプルなアイテムドロップ機能を実装したいと思います。
前回の記事を確認してもらえると分かりますが、Unityちゃんの攻撃によって敵を倒す処理まで作成しているので、倒したら指定したアイテムをドロップさせたいと思います。
初心者でも簡単に出来るアイテムドロップの実装について【Unity】
Itemデータを作成
まずは、ItemデータをScriptableObjectクラスを使って作成します。
一概にアイテムドロップといっても、ゴールドなどのゲーム内通貨や回復アイテムなどさまざまな種類がありますので、ScriptableObjectを使って作成したほうが柔軟だと思います。
とりあえず現時点で3種類のアイテムを作ってみました。何か新しい種類のアイテムが思いついたらTypeの中に記述すれば良いので管理がし易くなります。
今回は、コインを例にとって進めていきます。「Item」など分かりやすいフォルダーを作成して右クリック→「Create」→「CreateItem」を選択します。
ItemTypeを「Coin」にして名前やコインの情報などを適当に入力します。
アイテムをドロップした際のオブジェクトは、アセットストアなどで好きなものを探してインポートしておいてください。
ちなみに私は、アセットストアにあるGold Coinを使用しています。このアセットは、1枚用のコインプレハブと上図のような複数の小さなコインが固まっているプレハブに分けられておりとても便利なアセットになっているのでおすすめです。
ItemManagerスクリプトを作成する
敵を倒した際に、このスクリプトのItemDropメソッドを呼ぶことで、敵の倒れた位置にコインを配置するようにします。
このスクリプトは、敵オブジェクトにアタッチしてインスペクタからコインプレハブとItemフォルダに先ほど作成したコインデータを設定します。
EnemyStatusスクリプトを修正する
後は、どのタイミングでアイテムをドロップさせるかを追記するだけですね。
こんな感じで敵を倒したら敵だけ消えて、その場にコインがドロップされるはずです。
本来なら敵データも個別に作成して、敵の種類によって持たせるアイテムの種類も変えると良いですが、単純なアイテムドロップ自体は意外と簡単に作れるので参考にしてもらえたらと思います。