確認しました。
これ、本当に難しいんですが、
原因はこっちのほうです。
engine.UiManager.IsInputTrigCustom = true;
これをコルーチンで呼び出しても、そのフレームでの入力受付に対しての処理自体がすでにもう終わっているので結果的に入力がされていない状態になります。
通常のUnityでは
・入力処理
・Update
・コルーチン
の順番で実行されます。
宴のWaitCustomの場合は
・入力処理(場合によってはIsInputTrigCustom =trueに)
・Update(場合によってはIsInputTrigCustom =trueに)
・コルーチン(IsInputTrigCustomのチェック)
の順番で実行されます。
コルーチンの中でIsInputTrigCustom =trueをしてしまうと
・入力処理
・Update
・宴が呼び出すコルーチン(IsInputTrigCustomのチェック)
・自作スクリプトでのコルーチン(IsInputTrigCustom =true)
の順番で実行されるので、すでにチェックが終わっているので入力処理が間にあいません。
「宴が呼び出すコルーチン」と「自作スクリプトでのコルーチン」の順番が制御できればまだいいんですが、
Unityの仕様では、コルーチン同士の実行順の制御は基本的にできないようで、おそらく呼び出した順番になるのだと思います。
(ドキュメントがなかったので不正確です)
対策としては、
1、WaitCustomのかわりに、PauseScenarioコマンドを使う
PauseScenarioは会話シーンなどで使う場合に用意したコマンドです。
これを呼ぶと、プログラム上ではJumpScenarioが呼ばれるか、engine.ResumeScenario() が呼ばれるまでシナリオの進行を止めます。
2、いったんシナリオを終わらせてからジャンプ
engine.EndScenario();
engine.JumpScenario("ジャンプしたいシナリオ");
とする。ただし、この場合は表示されているものなどはすべてリセットされます。
上記などで対策してみてください。