- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我将 CustomComponent (GKComponent)
添加到 Xcode SpriteKit 场景编辑器中的实体并尝试使用 GKScene.init< 加载该
,.sks
文件时GKScene.rootNode
未设置。更奇怪的是,这只发生在 iOS 13 而不是 iOS 12。
我有一个小型 sprite 工具包 github 项目设置,清楚地演示了这个问题。只需在 iOS 13 模拟器上运行该应用程序即可重现该问题。 https://github.com/hdsenevi/answers-gkscene-rootnode-nil-bug
如果我从 SpriteKit 场景编辑器实体/ Sprite 中删除 CustomComponent
,那么它运行良好。即:加载 SKScene
到 GKScene.rootNode
供引用
import UIKit
import SpriteKit
import GameplayKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Load 'GameScene.sks' as a GKScene. This provides gameplay related content
// including entities and graphs.
if let scene = GKScene(fileNamed: "GameScene") {
// Get the SKScene from the loaded GKScene
if let sceneNode = scene.rootNode as! GameScene? {
// Copy gameplay related content over to the scene
sceneNode.entities = scene.entities
sceneNode.graphs = scene.graphs
// Set the scale mode to scale to fit the window
sceneNode.scaleMode = .aspectFill
// Present the scene
if let view = self.view as! SKView? {
view.presentScene(sceneNode)
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
} else {
print("Error. No GameScene was found on GKScene.rootNode")
}
} else {
print("Error loading GKScene file GameScene")
}
}
}
import SpriteKit
import GameplayKit
class CustomComponent: GKComponent {
override init() {
super.init()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func didAddToEntity() {
guard let gkSkNodeComponent = self.entity?.component(ofType: GKSKNodeComponent.self) else {
print("Error. Cannot obtain a reference to GKSKNodeComponent")
return
}
if let sprite = gkSkNodeComponent.node as? SKSpriteNode {
sprite.texture?.filteringMode = .nearest
}
}
}
更新
关于我的设置的一些细节
最佳答案
要解决此问题,您的组件需要覆盖变量 supportsSecureCoding
并且它必须返回 true。
这对我有用:
override class var supportsSecureCoding: Bool {
return true
}
关于swift - 在 Xcode SpriteKit 场景编辑器中向实体添加自定义 GKComponent 将 GKScene.rootNode 设置为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58245066/
我正在尝试定义我的包的用户可用的配置参数,但在识别根节点时遇到问题。 我创建了一个带有 getConfigTreeBuilder 的 Configuration 类,如下所示: /** * {@in
我想像这样创建一个 xml 文档和根元素: 我尝试这样创建: XmlDocument doc = new XmlDocument(); XmlNode rootNode = doc
如何以编程方式从 c# 中的 wpf TreeView 中选择根节点,这是带有 xmlDataProvider 的 databindet? 在我的例子中,根节点来自 DataType="cards":
我从 firebase 收到以下回复。我需要将自动生成的根节点复制为子节点。 { "-LcjpjUB1ucnzDabnHa9": { "CustomerId": "9ff2a33e-815e-
我正在尝试从我的场景中删除一组代表路径的节点。它们是使用 SCNGeometrySource 和 SCNGeometryElement 创建的 SCNSphere 几何节点和表示线的自定义几何图形的组
当我将 CustomComponent (GKComponent) 添加到 Xcode SpriteKit 场景编辑器中的实体并尝试使用 GKScene.init< 加载该 .sks 文件时,GKSc
我是一名优秀的程序员,十分优秀!