概要
自分用に作成したLimeLibraryを用いたUIの実装例について解説したいと思います。
自分はこんな感じに実装してますというくらいのもので、何かしら参考になれば幸いです。
github.com
このライブラリでどのようなことができるかについては前回の記事をご覧ください。
limegame.hatenablog.com
Unityバージョン
Unity 2021.3 以降
実装するUI定義
今回実装するUIは以下のものとします。
- インベントリUI
- 所持しているアイテムが一覧で見れる
- アイテムを選択すると、そのアイテムに対するアクションを選択できる
- 選択しているアイテムの詳細情報を確認できる
- マウスでもゲームパッドでも操作可能
今回の内容
前準備と、基本となるクラスの追加を行います。
実装手順
asmdefに依存を追加
前準備として、必要なasmdefへの参照をUIを実装する階層のasmdefに追加します。
UIAppの実装
まずはインベントリUI自体を表すUIAppを定義するため、UIAppクラスを継承したInventoryAppクラスを実装します。
各UIViewの実装
次に各画面を表すUIViewを定義します。
それぞれ、UIViewを継承して各Viewを実装します。
こちらもabstractな関数のみoverrideされていればOKです。
プレハブの作成
プレハブ上でUI要素を適当に構築し、それぞれのルートに定義したUIAppとUIViewのコンポーネントをアタッチします。
またプレハブのAddressablesへの登録も必要なので行います。
UIManagerプレハブの配置
LimeLibraryに含まれるUIManagerプレハブを、実行するシーンに配置します。
呼び出し
UIManagerから先ほど定義したInventoryAppクラスを指定し呼び出します。
address引数には先ほどAddressabelsに登録したアドレスを指定します。
実行し、ひとまず先ほど作ったプレハブがUIAppManager以下に生成されていれば成功です。