Swift 如果未在init上添加,则不显示场景子对象
我试图显示按钮,如果在SceneKit场景中单击了一个对象,它们作为场景的子对象可见,但不会在屏幕上渲染Swift 如果未在init上添加,则不显示场景子对象,swift,sprite-kit,Swift,Sprite Kit,我试图显示按钮,如果在SceneKit场景中单击了一个对象,它们作为场景的子对象可见,但不会在屏幕上渲染 init(size: CGSize, gameController: GameController) { super.init(size: size) self.gameController = gameController self.scaleMode = .aspectFit // Label is shown in s
init(size: CGSize, gameController: GameController) {
super.init(size: size)
self.gameController = gameController
self.scaleMode = .aspectFit
// Label is shown in scene
testLabel = SKLabelNode(text: "test")
testLabel.position = CGPoint(x: 100, y: 100)
testLabel.fontSize = 50.0
testLabel.fontColor = UIColor.red
addChild(testLabel)
// Label is not shown in scene
let timer = Timer(timeInterval: 1, repeats: false) { _ in
var label = SKLabelNode(text: "test 2")
label.position = CGPoint(x: 200, y: 200)
label.fontSize = 50.0
label.fontColor = UIColor.red
addChild(label)
}
}
我想你是在做一个计划外的计时器,然后把它扔掉。你的意思可能是Timer.scheduledTimer(…) 在任何情况下,对于SpriteKit来说,最好在SKAction框架内工作,否则最终会遇到一些问题,例如,您暂停了游戏,而计时器仍在运行,因为它们没有与SpriteKit协调 查看SKAction初始值设定项,特别是sequence()、wait(forDuration:)、run()
你能详细说明你面临的具体问题吗?我有一个游戏HUD(SceneKit叠加)。我想在HUD上单击按钮“生成”一个节点,但当我将一个节点添加到场景中时,它会在子节点中显示,但不会渲染它。这个计时器是一个演示。