UE4でActor間のTick実行順序に依存関係を持たせる方法
登録されたActorやComponentのTickFunctionはキューに積まれた後に更新タイミンググループ(PrePhysics等)に分類されてGameThreadで順番にExecuteTaskされるのね。まぁこれはもう順序不定って考えた方がいいわ
— ほげたつ (@HogeTatu) 2016年6月13日
でした。でもグループのみの運用だと面倒だよねってActorの実装を眺めていたらTickの依存関係を作ることは標準機能でサポートされているようです。
検証
TestActorというActorを作り、Tick内でPrintStringします。
こちらをレベルに10個配置し、試しに実行してみると以下の様な結果となります。
実行順が不定であることがわかるかと思います。
ここで先程の関数を使ってBeginPlay時に依存関係を設定してあげます。
「Tick Prerequisite Actor」はActor型のEditableなプロパティです。
このプロパティに対して TestActor2 には TestActor を、TestActor3 には TestActor2 を…といったように依存させたいActorを設定します。
この状態で実行すると、以下の様な結果となります。
依存関係に沿って順番にTickが実行されていることが確認できました。
今回はさらっと以上です。