Сохранить SceneKit редактирует ошибки - PullRequest
0 голосов
/ 26 января 2019

Мне нужна помощь, чтобы понять, почему мое приложение iOS 12.1 не сохраняет изменения времени выполнения в цвета SCNMaterial и SCNLights, добавленные пользователем.

Приложение правильно отображает все активы, созданные в Blender 2.79b. Активы были сохранены в папке .scnassets и были преобразованы из файла .dae в .scn через Xcode 10.1. Запись SCNScene (to: options: делегат :) возвращает true, а делегат сообщает об ошибке: ноль. Я попытался добавить SCNSceneSource.LoadingOption.strictConformance.rawValue: true в качестве опции, но это не имеет никакого эффекта.

если let documentsPathURL = fileManager.urls (для: .applicationSupportDirectory, в: .userDomainMask) .first {

let url = documentsPathURL.appendingPathComponent (selectedDesign.uniqueID!). AppendingPathExtension ("scn")

let success = scnScene.write (to: url, параметры: [SCNSceneSource.LoadingOption.strictConformance.rawValue: true], делегат: nil) {(totalProgress, error, stop) в print («Ошибка прогресса (totalProgress): (строка (описание: ошибка))») } }

делать { попробуйте dataSource.scnScene = SCNScene (url: URL (fileURLWithPath: path), параметры: [.strictConformance: true]) } catch let error как NSError { displayPreviousSessionLoadErrorAlert (ошибка: ошибка) }

Я ожидаю, что SCNLights будут добавлены в SCNScene, а изменения, внесенные в цвет SCNMaterials, будут сохранены в каталоге поддержки приложений и снова будут отображаться, когда SCNScene воссоздается и присваивается SCNView. Однако этого не происходит.

...