我有一个 GameScene.sks
自定义类GameScene.swift
它通过自定义类检查器(在 Xcode 的右侧)连接。这工作正常。
现在在GameScene.swift
我想引用另一个我想在将来的许多场景中重用的场景(过于简化的代码):
class GameScene: SKScene {
// ...
override func didMove(to view: SKView) {
//...
guard let gameMenuPath = Bundle.main.path(
forResource: "GameMenu", ofType: "sks") else { return }
let url = NSURL(fileURLWithPath: gameMenuPath) as URL
let gameMenu = SKReferenceNode(url: url)
addChild(gameMenu)
//...
我正在加载可重复使用的 GameMenu.sks
.
到这里为止一切正常。现在是 GameMenu.sks
的自定义类问题(要重用的场景)。对于GameMenu.sks
我还有一个 GameMenu.swift
它在自定义类检查器中被引用为自定义类。与 GameScene
完全相同.问题是它看起来像 GameMenu.swift
未找到/加载。我没有收到任何错误 - 所以看起来我拼错了自定义类 - 但我检查了很多次并且还清除了 Xcode 缓存。
有什么想法如何为另一个场景中引用的场景( .sks
)设置自定义类吗?
我认为这是针对可重复使用的场景部分所做的事情,例如 GameMenu
就我而言,这在每个 GameScene
中都可见.
感谢您的任何提示。
最佳答案
是否需要通过代码在GameScene中添加GameMenu?您也可以简单地使用检查器。在 GameScene.sks 中放置“Reference”(SKReferenceNode) 对象。从层次结构中选择它,然后选择“引用”下拉列表中的 GameMenu。
关于ios - 使用 SKReferenceNode 引用的 SpriteKit 场景未加载自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58049817/