ios - 将 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.
}
}
...
解决方案
推荐阅读
- spacy - spacy.matcher.PhraseMatcher object has no attribute "remove"
- flutter - 如何从 StreamBuilder 'Cloud Firestore' 正确显示单个值
- visual-studio-code - VS Code:深度链接扩展
- next.js - 为什么 PageSpeed Insights 会进行“重定向”?
- gradle - Jetty AnnotationParser 从多个位置扫描警告
- android - 从 firebase 实时数据库获取用户数据返回 null
- html - 如何在彼此下方显示元素?
- angular - 确保在打开 Angular-PWA 时执行 Http-Requests
- ajax - 如何使用 AJAX 提交 Salesforce 的 Web to Lead 表单而不是默认提交?
- oracle - 如何执行 ORACLE APEX PLSQL 动态内容