lime雑記

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

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

概要

自分用に作成したLimeLibraryを用いたUIの実装例についての続きになります。
前回はこちら。
limegame.hatenablog.com

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

今回の内容

今回は全体のフロー実装のための前準備と、アイテムリスト画面の表示、非表示処理を実装します。

実装手順

UIAppFlowの実装

まずは全体のフローを記述するためにUIAppFlowを実装します。
合わせて必要なFlowState(enum)とFlowContextも定義し、UIAppFlowのジェネリクスに設定します。

フローのステートを表すenum定義
フローへのデータの受け渡しやステート間のデータのやりとりを行うContext(UIAppFlowContextを継承)
上記2つをジェネリクスに設定したUIAppFlowを継承する

最初のステートの実装

まずは最初のステートを実装します。
最初の状態はアイテムを選択する画面なので、FlowStateにSelectItemという定義を追加し、そのステートを表すクラスを実装します。

InventoryFlowStateにSelectItem定義を追加
UIAppFlowStateを継承したInventoryFlowSelectItemを実装(ジェネリクスはInventoryFlowと同様)

次にこのステートをフローに登録します。
InventoryFlowに記述を追加します。

AddState関数でステートを登録、GetStartState関数にSelectItemを指定することで最初に実行するステートを指定

最後に実装したInventoryFlowをInventoryAppから呼び出します。

Start関数でフロー開始、UIAppのShowStartイベントに紐づける

表示と非表示処理を記述

実装したInventoryFlowSelectItemのExecute関数に中身を書いていきます。
ひとまずViewの表示とキャンセルキーで非表示を行いたいので以下のように記述します。

実行し、アイテムリストの画面が表示されEscキーで閉じることができれば成功です。