如何在SpriteKit场景编辑器中访问导航图的对象

我正在使用SpriteKit并通过xcode中的场景编辑器的帮助画一个场景。 根据SpriteKit,我们可以使用导航图来绘制path,我可以使用导航图来绘制path,但我无法在快速后端访问这个对象。

在这里输入图像说明

如何从场景中访问此导航图对象。

在默认的SpriteKit模板中,GameViewController在viewDidLoad函数中有一个部分,通过场景编辑器实体和graphics复制。

 class GameViewController: UIViewController { private var sceneNode: GameScene! override func viewDidLoad() { super.viewDidLoad() // Load 'GameScene.sks' as a GKScene. if let scene = GKScene(fileNamed: "GameScene") { // Get the SKScene from the loaded GKScene if let sceneNode = scene.rootNode as! GameScene? { self.sceneNode = sceneNode self.sceneNode.entities = scene.entities // <-- entities loaded here self.sceneNode.graphs = scene.graphs // <-- graphs loaded here // ... other scene loading code } } } } 

这些实体和graphics数组variables在GameScene中声明。 然后从数组中检索graphics。

 class GameScene : SKScene { var entities = [GKEntity]() var graphs = [String : GKGraph]() var navigationGraph: GKGraph<GKGraphNode>! override func didMove(to view: SKView) { self.navigationGraph = self.graphs.values.first // <-- get a reference to your graph } } 

如果SpriteKit编辑器中有多个graphics,请使用查询按名称检索它。

 self.navigationGraph = self.graphs.values.first(where: {$0.name == "GraphName"})