シナリオ終了位置


投稿日:2015年6月10日 | 最終更新日:2024年5月15日

シナリオの終了位置を設定します。
終了位置が設定されていない場合、シナリオシートの一番最後までくると、シナリオは終了扱いになります。

サンプル

リファレンス

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

宴のシナリオの一時停止と再開を制御する

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