gpt4 book ai didi

ios - 如何在 SpriteKit 场景编辑器中访问 Navigation Graph 的对象

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:40 25 4
gpt4 key购买 nike

我正在使用 SpriteKit 并借助 xcode 中的场景编辑器绘制场景。根据 SpriteKit,我们可以使用导航图绘制路径,我可以使用导航图绘制路径,但我无法在 swift 后端访问此对象。

enter image description here

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

最佳答案

在默认的 SpriteKit 模板中,GameViewControllerviewDidLoad 函数中有一个部分用于复制场景编辑器实体和图形。

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
}
}
}
}

这些 Entities 和 Graphs 数组变量在 GameScene 中声明。然后从数组中检索图形。

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 编辑器中有多个图形,则使用查询按名称检索它。

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

关于ios - 如何在 SpriteKit 场景编辑器中访问 Navigation Graph 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44799033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com