Проблема с копированием объекта SKAudioNode
В настоящее время я загружаю звуковые эффекты в словарь как таковой:
soundEffectsDictionary[SoundEffectType: SKAudioNode]
Это позволяет мне предварительно загрузить все звуковые эффекты в игре и запросить звуковой эффект по мере необходимости. Я упрощаю это для демонстрационных целей:
Пусть fxBoom = soundEffectsDictionary[SoundEffectType.fxBoom]!.copy() как! SKAudioNode
Это работает так же для SKSpriteNodes
, SKTextures
и т. д. Однако, похоже, что SKAudioNode
может производить копии таким способом. Когда я пытаюсь добавить копии на экран, они не воспроизводятся.
Как я могу правильно скопировать
SKAudioNode
? Если я хочу играть fxBoom дважды, перекрывая друг друга, мне понадобятся два отдельных узла. Я не хочу загружать файл с диска по соображениям производительности, поэтому я пытаюсь предварительно загрузить звуки.Есть ли лучший способ добиться того, что я пытаюсь сделать здесь?
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Вот простой код, демонстрирующий проблему:
let audioNode = SKAudioNode(fileNamed: "fxBoom.mp3")
self.addChild(audioNode) //audio plays, looping indefinitely
let audioNode = SKAudioNode(fileNamed: "fxBoom.mp3")
let audioNode2 = audioNode.copy() as! SKAudioNode
self.addChild(audioNode2) // audio does not play
audioNode2.run(SKAction.play()) // no difference
audioNode2.isPaused = false // no difference