kuront’s blog

主にUnityでのゲーム制作やってます。

【Unity】RPG制作 その5-アイテムのUI作成

 今回はアイテムのUIを作成していきたいと思います。

 アイテムのリストを作るのにScreenViewを使います。ScreenViewの階層下にあるContentsに、所持数が1以上のアイテム名のTextコンポーネントを保持したゲームオブジェクトを追加していきます。

 ヒエラルキーに新しくCanvasを作成し、名前をItemUICanvasにします。ItemUICanvasの階層下に「UI」→「ScrollView」を作成。ItemUICanvasのSortOrderを3に設定。ScrollViewはColorを適当に変更し、ScrollRectコンポーネントのMovementTypeをClampedに変更し、HorizontalScrollbarをNoneに変更。そしてScrollView階層下のScrollbarHorizontalを削除します。

 新規に空のオブジェクトを作成し、ItemUISystemを作成。新しくItemUIスクリプトを作成してオブジェクト「ItemUISystem」に貼り付けます。コードは以下のようにします。


クリックで展開

 publicにしたItemManagerとItemCanvasにそれぞれオブジェクト「ItemManager」とオブジェクト「ItemUICanvas」を貼り付けます。スクリプトの実行内容としては、ItemManagerの全てのアイテムの所持数をチェックして、所持数が1以上のアイテムを ItemUICanvasのScrollViewにアイコン付きのテキストで追加するものです。後で使用時の処理を実装できるようにButtonコンポーネントと新しく作成したItemEventコンポーネントもつけています。

 実行すると以下のようになります。

f:id:kuront:20210901104607p:plain


 このアイテムのUIをアイテムボタンを押したときに呼び出すようにしたいので、探索時のUIにItemButtonとBackButtonを追加します。

f:id:kuront:20210901104619p:plain

 StageUIManagerにアイテムボタンと戻るボタンが押されたときの処理を追加します。


クリックで展開

 ItemButtonのOnclickに、ItemUISystemオブジェクトのItemUI.ShowItemUI関数とStageUIManagerオブジェクトのStageUIManager.PushItemButton関数を指定します。
 BuckButtonのOnClickには、ItemUISystemオブジェクトのItemUI.DeleteItemUI関数とStageUIManagerオブジェクトのStageUIManager.PushCanvasButton関数を指定します。
これでアイテムボタンを押せばItemUIを表示し、戻るボタンを押せばItemUIを閉じることが出来るようになりました。

次回からは戦闘時の処理を実装していきたいと思います。