如何在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"})