EndScenarioとPauseScenario
投稿日:2015年6月10日 | 最終更新日:2021年2月11日
シナリオの終了位置を設定します。
「宴」では基本的にシナリオシートの一番最後までくると、シナリオは終了扱いになります。
ですが、既存のゲームの会話パートとして使っている場合は、複数の会話シーンを同じシート内にたくさん書くこともあるため、シナリオ終了の区切りを設定できるようにしてあります。
サンプル
リファレンス
Command | 説明 | Arg1 | Arg2 | Arg3 | Arg4 | Arg5 | Arg6 |
---|---|---|---|---|---|---|---|
EndScenario | シナリオを終了 | ||||||
PauseScenario | シナリオを一時停止 |
Unityのプログラムから宴のシナリオの開始、終了を制御する
ゲームの会話パートなどに宴を使う場合、「宴の特定のシナリオを呼び出して、その終わりを待つ」という処理が必要になると思います。
シナリオの呼び出しは、JumpScenario。
シナリオの終了判定は、IsEndScenario。
PauseScenarioコマンドで一時停止させたシナリオを再開するには、ResumeScenarioを使います。
サンプルコード
using UnityEngine; using System.Collections; using Utage; public class TalkArea : MonoBehaviour { public AdvEngine engine; public string scenarioLabel; // コリジョンにぶつかった void OnCollisionEnter() { StartCoroutine( CoTalk() ); } IEnumerator CoTalk() { //「宴」のシナリオを呼び出す engine.JumpScenario( scenarioLabel ); //「宴」のシナリオ終了待ち while(!engine.IsEndScenario) { yield return null; } } }
Unityのプログラムから宴のシナリオの一時停止と再開を制御する
EndScenarioを使った場合は、宴の全ての表示も終了してしまうので、キャラクター等が非表示になってしまいます。
表示を残したままにしたい場合は、PauseScenarioコマンドを使ってください。
シナリオの終了または一時停止の判定は、IsEndOrPauseScenarioで行います。
シナリオサンプル
サンプルコード
using UnityEngine; using System.Collections; using Utage; public class TalkArea : MonoBehaviour { public AdvEngine engine; public string scenarioLabel; // コリジョンにぶつかった void OnCollisionEnter() { StartCoroutine( CoTalk() ); } IEnumerator CoTalk() { //「宴」のシナリオを呼び出す engine.JumpScenario( scenarioLabel ); //「宴」のシナリオ終了または一時停止待ち while(!engine.IsEndOrPauseScenario) { yield return null; } } }
会話シーンについて
会話シーンとして宴を使う場合はこちらもご確認ください。