SpriteKitシーンエディタを使用しているときに予期しない動作が発生しました。Xcode 9.1(および9.2) - 参照されたスプライトが実行されていませんScene Editorで追加されたアクション
シーンにスプライトを作成し、アクションを追加してシーンエディタを使用して移動させました。エディタでアニメーションボタンをクリックすると、アクションがうまく動作します。シーンエディタでSKReferenceNodeオブジェクトを使用して、このシーンへの参照をメインシーンに追加します。スプライトはエディタで期待通りにメインシーンに表示されます。ただし、アプリケーションをビルドして実行すると、スプライトは表示されますが、アクションは実行されません。私はこれをXcode 9.2ベータ版で試してみて、同じ結果を得ました。 スプライトシーンをメインビューコントローラから直接ロードすると、すべてのアクションが期待どおりに実行されるため、参照されたノードで問題と思われます。 メインシーンのswiftクラスでdidMove(to :)をオーバーライドしてブレークポイントを設定すると、ブレークポイントに達したときにcontinueを押すだけで、すべてのアクションが参照されたスプライトを期待どおりに再生することもわかりました。ブレークポイントを無効にすると、参照されたスプライトでアクションは実行されません。 (私の回避策は、単にブレークポイントを使用し、続行ボタンを押すことです)
もう1つ興味深い観察です。以前のバージョンのXcodeで作成されたサンプルプロジェクトを開き、参照されたスプライトがそのアクションを実行しました。この古いSKSファイルを私のプロジェクトにコピーし、Actionsはうまくいきました... SKSファイルを編集するまで(別のアクションを追加するまで)、彼らは再び働きませんでした。
シーンがビューに移動したときにisPausedがtrueに設定されているバグがあります。すべてのノードをリセットするためにscene.isPaused = falseを呼び出してください。 – Knight0fDragon
ありがとう、ありがとう。面白いことに、SKReferenceNodeの多数のノードと参照されているSceneを動作させるためにisPausedを設定して実験した後、繰り返してすべてを削除した後、変更なしで動作します。 – Roger
あなたは反復する必要はありません、scene.isPausedはあなたのための反復を行います(彼らのひどいデザイン) – Knight0fDragon