背景デザイン画像1 背景デザイン画像2

Portfolio

フィールド上にアイテムを自動生成してみた

MENU

 概要

前回でアイテム管理プログラムが完成しました。

今回はフィールドにアイテムを生成します。

 設計

生成するときに必要なものは以下の3つです。
アイテム名
生成するか決める指標
生成座標

1. アイテム名
  今回はアイテム名をKeyにしてプレハブを生成するため必須です。
  他の方法として、新たにアイテムIDを作成してIDをKeyにすることもできますが面倒なのでアイテム名を使用します。

2. 生成するか決める指標
  登録された座標にアイテムが存在するか確認できるようにします。
  プレイヤーが既にアイテムを拾っていて、アイテムが無くなっている場合のみ生成します。

3. 生成座標
  空中とか海中にアイテムを生成されても困るので生成される場所を指定しておきます。


流れが分かったので実装していきます。

 実装

アイテム名は既にあるので「生成するか決める指標」と「生成座標」を要素にしたオブジェクトを作成します。



全体の構成はこんな感じです。

Flagが 0 の場合にアイテムプレハブを生成します。




作成したオブジェクトをアイテムデータベースに登録します。

これで生成データを一括管理できるようになりました。



必要なものが全て揃ったのでアイテム生成スクリプトを作成します。

ゲームオブジェクトにはアイテムプレハブを設定して動的にインスタンス化できるようにしておきます。

Coconut. Kiwi は無料プレハブが無かったため Peanut, Peach で代用してます()

動作確認



動的にアイテムを生成できました。

ゲームでは1時間ごとにアイテム生成されるようにしてます。

ココナッツの無料プレハブが無くてピーナッツで代用したのですが、意外と違和感ない?



実装コードはGithubに保管しました。
プログラム(座標オブジェクト生成)
プログラム(座標データベース生成)
プログラム(アイテム生成)

アイテムのアセットは以下をダウンロードしました。
Low Poly Fruit Pickups


フィールドにアイテムがある状態にできました。次回はアイテムを拾う処理を考えます。