首页 > 解决方案 > SpriteKit - 来自加载的 SKScene 的 SKShapeNode 未呈现

问题描述

我正在从文件中加载 SKScene。其中,我可以在屏幕上看到一个 SKShapeNode。但是如果将“自定义类”设置为像下面的TestNode这样的类,ShapeNode将不会被渲染:使用编码器和调试实现init,我可以看到.scene是nil,即使在Xcode的“属性编辑器”中也是如此,父级设置为场景。我什至可以获取我在节点上设置的 userData。该节点以 isPaused = true 启动,将其设置为 false 无济于事。

public class TestNode: SKNode {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}

知道为什么 .scene 属性为零吗?

标签: swiftsprite-kitskscenesknode

解决方案


事实证明,自定义类必须与场景编辑器中添加的节点完全相同。

因此,如果您在场景(.sks 文件)中有一个 SKSpriteNode 并设置其自定义类属性,则该自定义类也必须是一个 SKSpriteNode,它不能只是一个 SKNode。


推荐阅读