クラフトゲーム開発(物流のための UI をチェストに追加する)
最終的には、自キャラが探索エリアから資材満載で帰ってきたときに、ホームエリア入り口で拾ってきたアイテムをばらまくと、NPC が必要素材を取りに集まってくる、みたいなことをやりたいです。今回は、その仕組みの1つとして「このチェストはこのアイテムを要求している」というアイテムの要求情報をチェストに設定する UI を作ります。
チェストに要求アイテムを登録する UI の案
UI 要素としては、
- 要求アイテムを選ぶためのボタンを押すと、大きなパネルが表示される。
- タブでカテゴリごとに分類されている。食べ物、消耗品、装備とか。
- カテゴリ内では、アイテムがアイコンでグリッド表示されていて、その中から選ぶ。
にします。
あと、要求 UI のついでに「このチェストからアイテムを運び出していいよ」という出荷を指定するチェックボックスも追加します。
実装したもの
とりあえず仮のボタンで最初のレイアウトを作ります。
次に、実際のボタンが C# のコードや YAML 定義のアイテム情報から生成されるようにします。
↓C# の enum で定義したカテゴリに基づいて Toggle をスクリプトで動的に作って配置したところ
そして、ボタンの方は全アイテムのボタンを並べておいて、今のカテゴリーに所属するボタンだけ SetActive(true) される実装にしました。
↓カテゴリの2つのボタンをそれぞれ押したときの動作
よいです。
アイテムのボタン(正確には Toggle)が押されたときに、ボタンが押されているとわかる枠の表示などの見た目の調整はまた次の機会にやります。
まとめと今後の予定
アイテム選択の UI を実装したので大変よいです。
次回はこのアイテム選択 UI をチェストに適用するあたりに着手していきます。がんばります。