【问题标题】:Loading 3D models from a folder within art.scnassets in swift快速从 art.scnassets 中的文件夹加载 3D 模型
【发布时间】:2018-07-10 00:07:04
【问题描述】:

我对加载/显示位于 Xcode 中 art.scnassets 文件夹内的文件夹中的多个 3D 模型有疑问。请耐心等待我,因为我是 swift 和 iOS 编程的新手。

我的基本程序是我有一个二维码,我的应用程序将扫描它并返回一个产品名称。(我已经对此进行了编程并且它正在工作)。获得名称后,我希望搜索此名称以在 art.scnassets 中找到具有相同名称的文件夹。此文件夹将保存与产品相关的零件的 3D 模型。我想做的是,一旦找到此文件夹,将所有 3D 模型加载到窗口中的某种表格视图中,而整个搜索和加载到各种表格中是我不知道该怎么做或从哪里开始。

有人能指出我正确的方向吗?我不一定要寻找代码(最好有例子),而是一些关于如何做到这一点或在哪里寻找信息的指导。一旦我有一些工作,如果我卡住了,我可以上传一些代码。

如果有不清楚的地方请告诉我,我会尽力解释

提前感谢您的帮助

【问题讨论】:

  • 我不确定我们是否可以在tableView 中使用SCNView。您可以改为构建一个具有垂直对齐模型的场景,并添加UIPanGestureRecognizer 以实现滚动效果。
  • @GBSingh 你解决了吗?

标签: ios swift xcode scenekit arkit


【解决方案1】:

您可以在 art.scnassets 的子文件夹中检索项目,我在以前的项目中已经这样做了,为了组织,我必须将子节点分组到一个文件夹中。当我从那里加载一个节点时,我用文件夹和项目名称指定它的路径,例如(我正在使用 Objective-C)

@"art.scnassets/Frame/frame.scn"

我使用以下函数创建了我的对象

- (void)loadModel {

    SCNScene *virtualObjectScene = [SCNScene sceneNamed:_path];
    SCNNode *wrapperNode = [[SCNNode alloc] init];

    for (SCNNode *child in virtualObjectScene.rootNode.childNodes) {
        [wrapperNode addChildNode:child];
    }

    [self addChildNode:wrapperNode];
}

现在,我不确定循环遍历子目录中的所有内容(即我从未这样做过),但这在其他目录中绝对是可能的,例如 iOS/macOS 开发中可用的 FileManager。

以下问题可能对此有所帮助:

Iterate through files in a folder and its subfolders using Swift's FileManager

【讨论】:

    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2016-04-07
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    相关资源
    最近更新 更多