как импортировать файл obj в приложение Scenekit macOS - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь прочитать файл .obj в SCNNode с локального диска в приложении MacOS (не iOS) со следующим кодом:

let url = NSURL(string: objPath!)
let asset = MDLAsset(url: url! as URL)

let node = SCNNode(mdlObject: asset.object(at: 0))
node.geometry?.firstMaterial?.diffuse.contents = NSColor.red

scnView.scene?.rootNode.addChildNode(node)

ObjPath - это правильный и абсолютный путь к локальной папке (не внутри сборки приложения) Но при чтении выдает ошибку «Не удалось открыть файл OBJ». Кто-нибудь может помочь? Мне нужен только локальный путь.

1 Ответ

0 голосов
/ 13 июня 2019

Это должно позволить вам загрузить файл obj / dae в swift / xcode 10.2 +:

Создайте каталог моделей scenekit, выбрав Файл -> Создать -> Файл и выбрав «Каталог SceneKit» из списка.

import SceneKit.ModelIO

Тогда:

guard let url = Bundle.main.url(forResource: "your_obj_filename", withExtension: "obj", subdirectory: "your_folder.scnassets") 
     else { fatalError("Failed to find model file.") }

let asset = MDLAsset(url:url)
guard let object = asset.object(at: 0) as? MDLMesh 
     else { fatalError("Failed to get mesh from asset.") }

let newNode  = SCNNode(mdlObject: object)
...