EndScenarioとPauseScenario


シナリオの終了位置を設定します。
「宴」では基本的にシナリオシートの一番最後までくると、シナリオは終了扱いになります。
ですが、既存のゲームの会話パートとして使っている場合は、複数の会話シーンを同じシート内にたくさん書くこともあるため、シナリオ終了の区切りを設定できるようにしてあります。

サンプル

リファレンス

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;
        }
    }
}

会話シーンについて

会話シーンとして宴を使う場合はこちらもご確認ください。