首页 > 解决方案 > 使用 SKReferenceNode 引用的 SpriteKit 场景不加载自定义类

问题描述

我有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.

谢谢你的任何提示。

标签: iosswiftsprite-kitsksceneskreferencenode

解决方案


是否需要通过代码在 GameScene 中添加 GameMenu?您也可以简单地使用检查器。在您的 GameScene.sks 中放置“参考”(SKReferenceNode)对象。从层次结构中选择它,然后在“参考”下拉列表中选择 GameMenu。

在此处输入图像描述


推荐阅读