ios - 使用 SKReferenceNode 引用的 SpriteKit 场景未加载自定义类

标签 ios swift sprite-kit skscene skreferencenode

我有一个 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。

enter image description here

关于ios - 使用 SKReferenceNode 引用的 SpriteKit 场景未加载自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58049817/

相关文章:

swift - runAction() 内的变化值没有改变

ios - 为什么 CGPath 和 UIBezierPath 在 SpriteKit 中定义 "clockwise"不同?

ios - 自定义框架适用于 iPhone 4S/5 和 iPad 模拟器,不适用于 iPhone 5s/6/6Plus/6s/6sPlus

ios - 使用 uibezierpath 制作一个非常简单的图表

swift - 如何在不重叠的情况下生成多个节点?

ios - 当用户在 tableView Cell 中点击它时,如何获取特定 subview 的索引

ios - 在iOS中的表格单元格中设置两种背景颜色?

iPhone iOS 使用函数从 CoreData 检索 NSMutableArray

ios - 在搜索期间向 tableView 添加部分和行,如 Tweetbot 中所示

ios - 使用 SpriteKit 检测 Sprite 边界框(alpha 蒙版)内的触摸