シナリオ終了位置
投稿日: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;
}
}
}