Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何在Scenekit macOS应用程序中导入obj文件_Swift_Macos_Scenekit_.obj_3d Model - Fatal编程技术网

Swift 如何在Scenekit macOS应用程序中导入obj文件

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

我正在尝试使用以下代码从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
        
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)