lime雑記

ゲーム開発、その他雑記。

【Unity】LimeLibraryでUIを実装する : 実装編1

概要

自分用に作成したLimeLibraryを用いたUIの実装例について解説したいと思います。
自分はこんな感じに実装してますというくらいのもので、何かしら参考になれば幸いです。
github.com

このライブラリでどのようなことができるかについては前回の記事をご覧ください。
limegame.hatenablog.com

Unityバージョン

Unity 2021.3 以降

使用ライブラリについて

このライブラリはコード内で以下のライブラリを使用させていただいています。
同時に導入が必要になりますのでご注意ください。

またリソースの読み込みに関してはAddressablesを使用しています。

実装するUI定義

今回実装するUIは以下のものとします。

  • インベントリUI
  • 所持しているアイテムが一覧で見れる
  • アイテムを選択すると、そのアイテムに対するアクションを選択できる
  • 選択しているアイテムの詳細情報を確認できる
  • マウスでもゲームパッドでも操作可能

今回の内容

前準備と、基本となるクラスの追加を行います。

実装手順

asmdefに依存を追加

前準備として、必要なasmdefへの参照をUIを実装する階層のasmdefに追加します。

UIAppの実装

まずはインベントリUI自体を表すUIAppを定義するため、UIAppクラスを継承したInventoryAppクラスを実装します。

中身はまだなくてOK

各UIViewの実装

次に各画面を表すUIViewを定義します。
それぞれ、UIViewを継承して各Viewを実装します。
こちらもabstractな関数のみoverrideされていればOKです。

ItemListView
ActionListView
ItemInfoView

プレハブの作成

プレハブ上でUI要素を適当に構築し、それぞれのルートに定義したUIAppとUIViewのコンポーネントをアタッチします。
またプレハブのAddressablesへの登録も必要なので行います。

赤線のところに先ほど作成したAppとViewをアタッチ

UIManagerプレハブの配置

LimeLibraryに含まれるUIManagerプレハブを、実行するシーンに配置します。

呼び出し

UIManagerから先ほど定義したInventoryAppクラスを指定し呼び出します。
address引数には先ほどAddressabelsに登録したアドレスを指定します。

実行し、ひとまず先ほど作ったプレハブがUIAppManager以下に生成されていれば成功です。