現場レベルのゲーム制作が、すべてここで学べます。
この記事はUnityで作る3DダンジョンRPGの作り方講座の第16回目です。
前回は、ダメージ計算処理に装備品の効果を取り込み、さらに素材を使ってアイテムショップに装備品が並ぶ合成システムや武器、防具、道具の売買を含むアイテムショップの作り方を解説しました。
前回の記事:

今回はアイテムや敵キャラクターの図鑑システムの基盤を作ります。ポケモンなどではこの図鑑が大きな役割を担っていますよね。また、一般的にはゲームでやりこみシステムやコレクター欲を刺激する形で導入されるものになります。
冒険の途中で戦った敵や見つけたアイテムの説明画面が見られる図鑑システム(本講座では図書館システムとしています)の作り方をマスターしていきましょう。
また、今回作るシステムは応用してエネミー図鑑のベースにもなります。
Unityでアイテム図鑑システムを実装する
ここからはゲームのやりこみ性を向上させるためにアイテム図鑑(本作では図書館)画面の実装を行っていきます。
図書館ではこれまでに入手したアイテムと遭遇したエネミーを一覧で表示して確認することができます。
ゲームの本筋には絡まないため必須機能ではないため、不要であればこの工程はスキップしても問題ありません。
ただしDataクラス等に追加する変数は今後もサンプルスクリプト内に組み込んだまま使用するので一度は確認しておくことを推奨します。
図書館画面UI作成
必要になるUIは以下のとおりです。
- 施設UI:FacilityUI_Libraryオブジェクト
ショップ画面からのコピー&ペーストで大部分のUIを流用可能です。
ここから削除してよいのは所持Gold表示UIと合成素材UI、前衛・後衛アクターUI、合成・購入ボタンです。

ここからアイテム図鑑になるようにUIを修正していきます。
カテゴリボタン-CategoryButtons-の変更
CategoryButtonsの子オブジェクトの4つのボタンのうち2つのテキスト表示部分を「アイテム図鑑」「エネミー図鑑」に変更します。残り2つは不要なので削除します。
オブジェクト名は任意ですがCategoryButton_Items、CategoryButton_Enemiesとしておきました。完成図は以下です。

↑CategoryButtonsの幅を修正してあります。

↑Textの内容は上記の通り。アイテム図鑑の左右幅が狭く、文字が詰まって見えたのでRectTransformの数値を微調整しています。

↑その他Simple Translationの中身も修正しています。
エネミーリスト表示Scroll View:EnemiesScrollViewを作成
商品UIを並べて表示しているItemsScrollViewオブジェクトをコピーで複製し、これを図鑑用エネミーUIを並べて表示するものとして使用します。
複製したオブジェクト(EnemiesScrollView)内にある商品UIについては1つを除いて消去します。

残った1つの商品UIを右クリックし、[Prefab] → [Unpack] を選択してShopItemUIプレハブとの紐づけを解除します。
このオブジェクトの名前をLibraryEnemyUIに変更し、背景色を適当な色に変更します。
ItemIconオブジェクトにはエネミーの顔グラフィックを表示するので適切な縦横比に変えておきます。
そしてShopItemUIコンポーネントは削除します。

ItemIconをEnemyFaceIconに修正
![]()
ItemNameTextをEnemyNameTextに修正

LibraryEnemyUIをプレハブ化
最後にLibraryEnemyUIオブジェクトをプレハブ化し、適当な数まで複製しましょう。(ゲーム内に登場する敵の種類の数だけあればOKです)

選択エネミーの立ち絵画像:EnemyStandingImage
新しくImageオブジェクトをSelectItemDetailUIsの子オブジェクトとして作成します。
エネミーを選択したとき、そのエネミーの立ち絵画像を画面右下に表示できるようにImageUIを追加します。
スクリプトからRectTransformのサイズ変更を行うため、AnchorsとPivotは右下を基準とするよう調整しましょう。

↑pivotを修正するとPosが変わるので注意。
ここまででUIの作成は完了です。
Unityでアイテム図鑑(図書館)システムスクリプトの実装
ここからはアイテム図鑑のシステム部分を作っていきます。
FacilityUI_Library.cs (新規)
まとめ

ここまででアイテム図鑑及びモンスター図鑑が完成しました。
次はダンジョン内で起こるイベントを実装し、宝箱などからアイテムを獲得したりトラップを設置したりできるように要素を付け足していきましょう。
次の記事:

現場レベルのゲーム制作が、すべてここで学べます。






コメント