コマンドクラス(JNCommand,JNCoroutineCommand)にインターフェースを実装することで
エンジンと連携したコマンドを作成することができます。
ITweenObject
ITweenObjectインターフェースを実装することで
コマンドの実行と同時に指定のTweenアニメーションを実行できる
Method |
notes |
GameObject GetTweenTarget() |
Tween対象のGameObjectを取得する |
Property |
notes |
JNCTween tween |
get |
IWait
IWaitインターフェースを実装することで、Executeの終了を任意のタイミングに調整できる
コマンド実行中にタップが発生した場合、OnSkipがコールされる
Method |
notes |
void OnSkip() |
スキップ発生 |
void SetFinishProcess(Action) |
完了時に実行するActionを設定する |
ISkipStop
ISkipStopインターフェースを実装することで
Skip中に一時的にスキップを停止することができる
Method |
notes |
bool IsStopSkip() |
スキップ処理の停止を判定 |
IJump
IJumpインターフェースを実装することで
targetLabelが指定する文字列とLabelが一致するコマンドに遷移する
Method |
notes |
string GetTargetLabel() |
ターゲットとなるラベルを取得する |
IForceAuto
IForceAutoインターフェースを実装することで
強制的にAuto進行させる
IAddBacklog
IAddBacklogインターフェースを実装することで
対象のコマンドはイベントハンドラのOnAddBacklogで通知されます
IEnd
IEndインターフェースを実装することで
シナリオの終了処理が行われ、そのコマンドで指定したデータをエンジン外で受け取ることができる
Method |
notes |
object GetEndData() |
シナリオ終了時のデータを取得する |
IPreprocess
IPreprocessインターフェースを実装することで、シナリオ再生前にコマンド毎に処理を実行することができる。
再生前にリソースのダウンロードやキャッシュを行う場合に使用できる。
Method |
notes |
IEnumerator OnPreprocess(object[]) |
事前処理を実行する |
引数object[]ではJNEngine.SetUp関数でデータを渡すことができる
//IPreprocessを実装している各コマンドのOnPreprocessで任意のデータを受け取れる
_novelEngine.SetUp(new object[] { _resources });
INextTapNotify
INextTapインターフェースを実装することで
CommandBundle単位の処理終了後、ユーザーTapの通知を受け取る
Method |
notes |
void OnNextTap() |
次のCommandBundleへ進む際の通知 |
Skip有効時はタップ判定を待たずに自動でOnNextTapが呼び出される
ILaunchThread
ILaunchThreadインターフェースを実装することで、
コマンドを並行して再生するスレッドを立ち上げる
Property |
notes |
Action LaunchThreadProcess |
set |
シナリオにthreadsとして定義したものの名前を指定することで
スレッドを立ち上げることができる
public class SampleCommand : JNCommand, ILaunchThread
{
///
/// 実行するターゲットスレッド名
///
public string target;
public Action LaunchThreadProcess { get; set; }
public override void Execute()
{
LaunchThreadProcess(target);
}
}
IWatchThread
IWatchThreadインターフェースを実装することで
並行して再生しているスレッドの完了を待機することができる
Property |
notes |
Func IsLaunchingThread |
set |
シナリオにthreadsとして定義したものの名前を指定することで
そのスレッドが実行中かどうか判定することができる
ICloseThread
ICloseThreadインターフェースを実装することで
並行して再生しているスレッドを停止することができる
Property |
notes |
Action CloseThreadProcess |
set |
シナリオにthreadsとして定義したものの名前を指定することで
その再生を強制的に停止する