ViewController 已有 SCNScene,怎么从服务器下载3D模型文件(DAE)然后加载到这个 SCNScene呢?
由于
SCNScene
不支持动态加载 DAE 文件,或者说不支持动态加载COLLADA
方案下的所有3d 类型,但是测试发现直接把 DAE 文件放进arc.scnassets
文件夹下的时候是可以加载的,可见系统编译的时候应该是做了某些手脚,查询资料后发现系统是执行了两个脚本,两个脚本的路径分别是/Applications/Xcode.app/Contents/Developer/usr/bin/copySceneKitAssets
和/Applications/Xcode.app/Contents/Developer/usr/bin/scntool
所以先把这两个文件拷出来新建一个文件夹,命名是 自定义名字.scnassets,例如abc.scnassets
把模型文件放在里面,然后在这个文件夹外面放上copySceneKitAssets和scntool
终端执行./copySceneKitAssets abc.scnassets -o abc-o.scnassets 如果没问题的话就会生成一个 abc-o.scnassets 文件夹
打包 zip 上传服务器
代码下载 zip包,解压,然后载入文件
1 | documentsDirectoryURL = [documentsDirectoryURL URLByAppendingPathComponent:@"abc-o.scnassets/test.dae"]; |
或者使用SCNScene这个方法
1 | + (nullable instancetype)sceneWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options error:(NSError **)error; |
也是可以的