В моей игре я добавил эффект частиц, используя SKEmitterNode, который играет в течение нескольких секунд, а затем удаляется из игры.
Однако при удалении частицы остаются на экране надолго.
Это код для добавления и удаления эмиттера:
// debrisNode is a child of scene
let emitter = SKEmitterNode(fileNamed: "shatter.sks"),
emitter.name = debrisNode.name
emitter.targetNode = scene
debrisNode.addChild(emitter)
debrisNode.run(
.sequence([
.scale(to: 0.1, duration: 1),
.run {
emitter.particleBirthRate = 0
emitter.targetNode = nil
emitter.removeAllChildren()
emitter.removeFromParent()
}]))
Редактировать: теперь я думаю, что это связано с моим использованием targetNode
.Когда я устанавливаю targetNode = debrisNode
, частицы уходят - но мне нужен targetNode, чтобы любая анимация выглядела правильно.