SpriteKit programming guide содержит этот полезный маленький лакомый:Spritekit Scene Архивирование
магазин уровень игры как архив узла сцены. Этот архив включает в себя сцену, все ее потомки в дереве узлов и все связанные с ними физические тела, суставы и действия.
Но он не имеет информации о том, где и как сохранить этот архив. Это мой текущий код, если он не работает:
// Save Data
let fileManager = FileManager.default
let URL = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0]
let path = URL.appendingPathComponent("stage1.dat")
if NSKeyedArchiver.archiveRootObject(stage1, toFile: path.path) != false {
print("stage saved")
}
else {
print("save failed")
}
// Load Data
var data = Data()
do{
data = try Data(contentsOf: path)
}
catch{
print(error)
}
let stage = NSKeyedUnarchiver.unarchiveObject(with: data) as? GameScene
редактировать: Оказывается, у меня нет разрешения на запись локального домена. упс. Я переключил его в пользовательский домен, и теперь запись работает. Тем не менее, попытка разобрать тот же файл теперь бросает NSException. Я добавил код для удаления в блок выше.
Это может быть то, что вы ищете http://battleofbrothers.com/sirryan/saving-game-data-in-spritekit – 0x141E