目的は複数のSCNNodeを同時にアニメーション化し、すべてのアニメーションが完了したら完了ブロックを呼び出すことです。パラレルアニメーションは同じ持続時間を持ちますので、同時に起動すると同時に完了します。 SceneKit:複数のSCNNodeを一緒にアニメーション化して、完了ブロックを一度呼び出す方法
は、Sprite Kitのgroup
機能を使用して提案したが、
SCNScene
クラスは
runAction
がないため、シーンキットにはアナログはありません。
1つのオプションは、各ノードに対してすべてのアクションを個別に実行し、それぞれが同じ完了関数を呼び出すようにします。フラグは1回だけ呼び出されるようにする必要があります。
もう一つの選択肢は、完了ハンドラを避け、アニメーションの持続時間に合わせた遅延の後に完了コードを呼び出すことです。ただし、テスト中に競合状態が発生することがあります。これは、アニメーションが完了する前に停止することがあるためです。
これはちょっと大変ですね。 SceneKitの複数のノードのアニメーションをグループ化して補完ハンドラを呼び出す正しい方法は何ですか?
質問を更新する必要がありますが、これも私たちが使用したアプローチです。残念ながら、アニメーションは時々遅れることがあるため、競合状態が発生します。 – Crashalot