是否可以以编程方式下载 .scn 文件并运行它?

14wml

基本上我想知道是否有可能.scn在网络上托管一个文件,下载它,并将其呈现为 aSCNNode并将其放入sceneView.

如果是这样,我需要调用哪些框架和函数来执行此操作

M.贝迪

去年我在一个项目objective-C上做了类似的事情。我有一个包含 SCN 文件和其他资源的 zip 文件。我使用 AFNetworkng 下载 zip 文件,然后使用 SSZipArchive 将其解压缩到应用程序的文档文件夹中。

在 JSON 文件中,我有要显示的节点的形状 ID。

我构造了 SCN 文件资源的路径。为简洁起见,我删除了一些代码。

SCNSceneSource *sceneSource = [SCNSceneSource sceneSourceWithURL:documentsDirectoryURL options:nil]; 

newShapeNode = [sceneSource entryWithIdentifier:shapeID withClass:[SCNNode class]];

[parentNode addChildNode:newShapeNode];

这是下载方法 - 编辑。

- (void) fetchRelease:(Album *) album usingProgressIndicator:(UIProgressView *) progressView completionHandler:(void(^)(NSError *error))completionHandler {
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];
    [manager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"XXXXXXXX" password:@"XXXXXXX"];

    NSURL *URL = [NSURL URLWithString:album.url];
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];

    NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
        return [self.documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
        if (error != nil) {
            completionHandler(error);
        } else {
#ifdef DEBUG
            NSLog(@"File downloaded to: %@", filePath);
#endif
            NSError *error;
            [SSZipArchive unzipFileAtPath:filePath.path toDestination:self.documentsDirectoryURL.path overwrite:YES password:nil error:&error];
            if (error != nil) {
                completionHandler(error);
            } else {
                [self updateAlbumRelease:album];  // update the data model
                completionHandler(nil);
            }
        }
    }];

    if (progressView != nil) {
        [progressView setProgressWithDownloadProgressOfTask:downloadTask animated:YES];
    }
    [downloadTask resume];
}

这是编辑后的 ​​pod 文件:

platform :ios, '9.1'

target 'SOMEAPPNAME' do
pod 'SVProgressHUD'
pod 'SSZipArchive'
pod 'AFNetworking', '~> 3.0'
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

[Swift] 加载运行时下载的 scn 文件时为零

以编程方式将fbx转换为scn

如何通过编程将.scn从Documents文件夹转换为SCNNode?

以编程方式检查可执行文件是否存在,而无需运行它或使用“哪个”

获取在scn文件中创建的球体的位置

SceneKit:将 scn 文件保存到磁盘

无法保存文件“ File.scn”

以编程方式检测命令是否可以作为模块运行

是否可以在Android Wear上以编程方式运行导航?

是否可以在WPF中以编程方式操纵psd文件的图层?

是否可以以编程方式锁定文件?(IBM 连接 5.0)

是否可以通过编程方式找到回退日志文件?

如何在SceneKit中将.dae转换为.scn文件

SceneKit –如何在场景视图中显示SCN文件?

.DAE或.SCN文件在Xcode中无法正确显示

将Apple SCN文件批量转换为DAE

以编程方式下载Azure文件共享文档

是否可以通过编程方式获取运行时正在使用的JNA版本?

是否可以在运行时以编程方式更新Android Manifest?

是否可以在运行时以编程方式修饰函数/方法?

在Haxe / Starling中,是否有编程方式可以在运行时更改vsync?

是否可以通过编程方式更新Jar文件而无需重写整个文件?

Powershell是否可以通过任何方式从Azure File(not blob)共享下载文件

是否可以以编程方式使用.PF文件连接到数据库

是否可以通过编程方式将文件(图像)上载到BlobStore,而无需引用Forms?

以编程方式检查所下载的MP3 / OGG文件在android中是否有效/完整

是否可以通过编程方式取消/停止从JavaScript开始的下载?

是否可以在单个变量(批处理文件)中分配多个值?如果没有,有没有办法以更有效的方式运行它?

Python是否可以识别对以交互方式运行的文件的更改?