首页 > 解决方案 > 将 GKComponent 添加到 GameScene.sks 时未加载 SKScene

问题描述

我目前正在使用 Swift SpriteKit 和 GameplayKit 创建一个 2D 游戏。我有一个 GameScene.sks 文件和一个 SKScene 类型的 GameScene.swift 文件。现在我想添加一个 GKComponent 类型的组件。我创建了我的组件并将其添加到我在 GameScene.sks 中的一个 SKSpriteNodes 新创建的组件

但是,在场景编辑器检查器中将组件添加到 SpriteNode 后,场景不再加载,应用程序仅显示灰色屏幕。

在此处输入图像描述

这是 XCode 中的一个已知问题吗?有没有办法绕过这个问题?

我没有上传任何示例代码。任何支持 SpriteKit 和 GameplayKit 的新 XCode 项目(ios / Game)都可以重现该问题。只需添加一个派生自 GKComponent 的类,并将该类添加到场景编辑器中给定的 helloLabel 中。

这是 GameScene 的加载方式:

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        if let scene = GKScene(fileNamed: "GameScene") {
            if let sceneNode = scene.rootNode as! GameScene? {
                // This gets only executed when I remove the Component from the SKSpriteNode in the Scene Editor.
            }
        }
        ...

标签: iosswiftxcodesprite-kitgameplay-kit

解决方案


推荐阅读