yosita/たんすかい 2023/07/02 12:02

宴から日時場所の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)

ダウンロード

スクリプトは添付しています。

③SendMessageByName用のオブジェクトを作成します。

④RecieveUtageTimePlaceUIのオブジェクトに①のUIオブジェクトとテキストを設定します。
RecieveUtageTimePlaceUIは常にアクティブにする必要があります。

⑤宴のマクロを設定


マクロの設定は任意ですが宴のシナリオ内の可読性を上げる為に
マクロ化を推奨します。
⑥シナリオ内で呼び出します。

宴のExcel記述は
Command,時間場所表示
Arg1,4月5日14時
Arg2,駅前
表示終了は
Command,時間場所非表示
とかなりシンプルにしています。

宴のアセットは下記です。

本日は以上となります。少しでも参考になれば幸いです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索