宴から日時場所のUIを制御する方法
今日は宴から日時場所のUIを表示する方法を紹介します。
上記スクショの左上が該当の箇所です。
ミステリー推理ゲームだと日時や場所の表示が頻繁に必要な為、
シナリオ内(キャラのセリフや地の文)ではなくシステムとして表示させています。
4月5日が日時、駅前が場所の例です。
宴公式サイトのSendMessageByNameの使い方を参考にしています。
①専用のUIを設定します。
TimePlaceUIが日時場所のUIのオブジェクトです。
画像とテキストのオブジェクトなどを設定します。
Canvas-System UIの配下に設定しています。
②スクリプトを作成します。(UtageTimePlaceController.csとしました)
void ShowTimePlaceUI(AdvCommandSendMessageByName command)
{
TimeText.text = command.ParseCellOptional<string>(AdvColumnName.Arg3, "arg3");// 日時を入れる
PlaceText.text = command.ParseCellOptional<string>(AdvColumnName.Arg4, "arg4");// 場所名を入れる
TimePlaceUI.SetActive(true);
}
void HideTimePlaceUI()
{
TimeText.text = "";
PlaceText.text = "";
TimePlaceUI.SetActive(false);
}
UtageTimePlaceController.txt (931.00B)
Downloadスクリプトは添付しています。
③SendMessageByName用のオブジェクトを作成します。
④RecieveUtageTimePlaceUIのオブジェクトに①のUIオブジェクトとテキストを設定します。
RecieveUtageTimePlaceUIは常にアクティブにする必要があります。
⑤宴のマクロを設定
マクロの設定は任意ですが宴のシナリオ内の可読性を上げる為に
マクロ化を推奨します。
⑥シナリオ内で呼び出します。
宴のExcel記述は
Command,時間場所表示
Arg1,4月5日14時
Arg2,駅前
表示終了は
Command,時間場所非表示
とかなりシンプルにしています。
宴のアセットは下記です。
本日は以上となります。少しでも参考になれば幸いです。