選択肢をTimerで表示したいです。

327 views
Skip to first unread message

harvestgames

unread,
Oct 27, 2021, 10:14:39 PM10/27/21
to 宴ユーザーグループ
こんにちは。Utageを本当に興味深く使っています。
まず、翻訳機を使って文章がきれいではない点、ご了承ください。

私は今、Timerを活用したHiddenSelectionを実現しようとしています。

ex) TalesWeaver Selection
46zZ5V.gif

Timerは、SendMessage命令を使用してUnityに拡張させて実装に成功しました。

しかし、上のエクセルシートを見ますと、3番目のSelectionにリアルタイムで更新されるParamであるtimerが5秒未満であるときに表示されるように条件式に含めましたが、Selectionコマンドを呼び出すときにだけ条件を検査するようなので、うまく適用されないようです。(timerはFloat型でSetParameter関数を利用してリアルタイムで更新しています。)

Scenario.PNG

このようにリアルタイムで変更されるParamを条件式に使用するためにUtageに確保された機能はありますか?

harvestgames

unread,
Oct 28, 2021, 4:12:13 AM10/28/21
to 宴ユーザーグループ
文書を参考にしてカスタムコマンドを作成しました。 

関連コードを共有します。

Utageモジュールを直接修正していないため、リアルタイムでHidden Selectionの条件を満たすと、既存のSelection削除後に新しいSelectionオブジェクトが作成されるため、以下の問題は解決できませんでした。

- Hidden Selectionのみ別途生成不可

もしこの機能アップデート計画があれば、お役に立てば幸いです。

Scenario.PNG
2021년 10월 28일 목요일 오전 11시 14분 39초 UTC+9에 harvestgames님이 작성:
MyCustomCommandManager.cs
AdvCommandHiddenSelection.cs

マッドネスラボ

unread,
Oct 28, 2021, 8:40:48 AM10/28/21
to 宴ユーザーグループ
以前、同じような要望があってサンプルスクリプトを書きました。
Utage / Scripts / ADV / Extra / AdvSelectionTimeLimit.cs
表示する選択肢をプレハブ指定する方法を使ってください。

AdvSelectionTimeLimit.csはサンプルで、そのままは使えません。
これを元に自分で、AdvSelectionTimeLimitCustom.csなどの独自のコンポーネントを書いてください。
そのコンポーネントを、新しいプレハブにをAddComponentして使ってください。

AdvSelectionTimeLimitは、時間が来ると、timeLimitIndexで指定された選択肢が自動的に選ばれるものです。
AdvSelectionTimeLimitCustomでは、OnUpdateWaitInput書き換えて、表示を消す処理などを書いてください。

void OnUpdateWaitInput(AdvSelectionManager selection)
{
float timeLimit = Selection.Data.RowData.ParseCell<float>("TimeLimit");

time += Engine.Time.DeltaTime;
if (time >= timeLimit)
{
if (Engine.SelectionManager.IsWaitInput)
{
this.gameObject.SetActive(false);
}
}
}


Selectionコマンドは、Arg1~Arg6はすでに使用済みですが、
エクセルに「TimeLimit」という新しい行を追加してください。
プログラムから"TimeLimit"行のセルを参照するのこのコードです。
float timeLimit = Selection.Data.RowData.ParseCell<float>("TimeLimit");



2021年10月28日木曜日 17:12:13 UTC+9 harvestgames:

harvestgames

unread,
Oct 28, 2021, 9:07:24 PM10/28/21
to 宴ユーザーグループ
理解しました。返事ありがとうございます。

AdvExtraのスクリプトを見ることができませんでした。

SelectionManagerのSelectionEventを利用すればよかったのですね。 素敵な方法です。
2021년 10월 28일 목요일 오후 9시 40분 48초 UTC+9에 マッドネスラボ님이 작성:
Reply all
Reply to author
Forward
0 new messages