Swift 如何在Scenekit macOS应用程序中导入obj文件
我正在尝试使用以下代码从macOS应用程序(非iOS)的本地驱动器将.obj文件读入SCNNode:Swift 如何在Scenekit macOS应用程序中导入obj文件,swift,macos,scenekit,.obj,3d-model,Swift,Macos,Scenekit,.obj,3d Model,我正在尝试使用以下代码从macOS应用程序(非iOS)的本地驱动器将.obj文件读入SCNNode: 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
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文件”错误。我只需要访问本地路径。这将允许您在swift/xcode 10.2+中加载obj/dae文件: 通过转到文件-->新建-->文件并从列表中选择“scenekit catalog”,创建scenekit模型目录
import SceneKit.ModelIO
然后:
你能附上有问题的OBJ文件吗?
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)