gpt4 book ai didi

ios - 将几何体从一个场景复制到另一个场景

转载 作者:可可西里 更新时间:2023-11-01 01:06:54 25 4
gpt4 key购买 nike

我正在玩弄 SceneKit 和 Swift(但 Objective-C 中的答案很好)。

我知道如何将 collada 文件加载到场景中。 (你能把它加载到一个节点中吗?)

这是我正在使用的 Swift 代码:

    let url = NSBundle.mainBundle().URLForResource("weasel", withExtension: "dae")
var error: NSErrorPointer? = nil
let weasel = SCNScene.sceneWithURL(url, options: nil, error: error!)

(我不确定我声明错误的方式是多么地道。请随意启发我。)

这似乎工作正常,但我现在想将这个场景(或整个场景,没关系)中的某些东西插入到另一个场景中。我得到了类似这样的东西来编译和运行,但它似乎不起作用。

    let weaselNode = SCNNode()
weaselNode.geometry = SCNNode(geometry: weasel.rootNode.geometry)
scene.rootNode.addChildNode(weaselNode)

最佳答案

您可以轻松地将 Collada 文件的一部分加载到节点中。我还没有时间探索 Swift,所以这是 ObjC:

    NSURL *urlToColladaFile = [[NSBundle mainBundle]URLForResource:@"ColladaFileName" withExtension:@"dae"];
SCNSceneSource *sceneSource = [[SCNSceneSource alloc]initWithURL:urlToColladaFile options:nil]]
SCNNode *node = [sceneSource entryWithIdentifier:@"uidInColladaFile" withClass:[SCNNode class]];
[scene.rootNode addChildNode:node];

您可以通过在代码中的某处插入以下内容来获取标识符列表:

    NSLog(@"Scene identifiers list: %@", [sceneSource identifiersOfEntriesWithClass:[SCNNode class]);

关于ios - 将几何体从一个场景复制到另一个场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24026643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com