自定义 SKSpriteNode 类 用于 .sks 文件?

custom SKSpriteNode classes for use in .sks file?

我正在制作自定义 SKSpriteNode Class,我想在我的 .sks 文件中使用它。我希望它有 @IBInspectable 属性。可能吗?以及如何实现它的init(coder:)方法,或者不需要实现?

不可以使用 @IBInspectable,它只适用于故事板编辑器中的 classes。

您可以使用 init 创建您的自定义 class 并从代码实例化它。如果你想从场景编辑器中实例化你的自定义对象,你必须使用 init(coder:) func

你可以在你的 class 中同时拥有两个初始化,以防你希望在某个时候在代码中实例化你的对象以及在场景 sks 文件中创建。

init() {

    super.init(texture: nil, color: .clear, size, CGSize.zero)

    setup()
}

required init?(code aDecoder: NSCoder) {

    super.init(code: aDecoder)

    setup()
}

func setup() {
    //add some setup code here
}

或者如果您只想实例化场景文件中的对象,您可以删除普通的 init()。