async/await
各スクリプトはasync/awaitによる非同期待機に対応しております。
非同期待機メソッド
実装している非同期待機メソッドは以下の通りです。
- PlayableBehaviour.Yield
次のOnUpdate呼び出しまで待機する。 - ActionBehaviour.WaitForExecute
次のOnExecute呼び出しまで待機する。
待機後はOnExecute内と同等扱いになるため、FinishExecuteの呼び出しが可能になります。
Yield使用例
|
|
このスクリプトを実行するとawait Yield();
を10回行った後、Consoleに9
を出力して遷移します。
この例では、OnStateBeginの呼び出しと1回目のawait Yield();
呼び出し後が同一フレームになる点にご注意ください。
CancellationTokenOnEnd
PlayableBehaviour.CancellationTokenOnEnd
ノードから抜けた時またはインスタンスが破棄されたときに非同期待機をキャンセルするトークンです。
YieldメソッドやWaitForExecuteメソッドはこのトークンでキャンセルされるようになっています。
他のメソッドで非同期待機処理を行う場合、必要であればこのキャンセルトークンを使用してください。
キャンセルされたときは、System.OperationCanceledException
が投げられます。
呼び出し元は例外をcatchして適切にキャンセル処理を行ってください。
UniTask
UniTaskを導入している場合Yeild().ToUniTask()
でUniTask型に変換できます。
ToUniTaskメソッドを有効化するには、UniTaskの利用を参照してください。