SKEmitterNode оставляет частицы на экране после удаления из родительского - PullRequest
0 голосов
/ 07 декабря 2018

В моей игре я добавил эффект частиц, используя 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, чтобы любая анимация выглядела правильно.

...