1

Xcode 8 用の SpriteKit/GameplayKit プロジェクトと、Entity-Component 情報をシーンに追加できる新しい Scene Editor を更新しています。エンティティ コードをシーンに移動しましたが、対応するノードからエンティティにアクセスできません。Appleのドキュメントによると:

エンティティまたはコンポーネントをアタッチしたシーン内の SpriteKit ノードには、ノードとそれが表す GKEntity オブジェクトとの間の関係を管理するための GKSKNodeComponent オブジェクトが自動的に含まれます。

GKSKNodeComponent オブジェクトをエンティティに追加すると、コンポーネントの SpriteKit ノード (SKNode オブジェクト) のエンティティ プロパティが自動的に更新され、そのエンティティを指すようになります。

シーンをロードするために必要な新しいコードは、基本的に次のとおりです。

guard let newTowerScene = GKScene(fileNamed: "TowerScene"),
    let rootScene = newTowerScene.rootNode as? SKScene 
    else { return }
self.view?.presentScene(rootScene, transition: SKTransition.push(with: .up, duration: 1.75))

オブジェクトにアクセスするGKSceneと、正しく読み込まれたエンティティの配列が返されますが、接続されたノードからエンティティにアクセスしようとすると、GKEntity.entitynil が返されます。GKSKNodeComponent.nodeノードは、 内のエンティティからのアクセスによって接続されGKSceneます。

のプロパティを期待どおりに取得GKSKNodeComponentGKSceneて自動的に更新するにはどうすればよいですか?SKNodeentity

4

1 に答える 1