【问题标题】:How can I load multiple objects in SceneKit?如何在 SceneKit 中加载多个对象?
【发布时间】:2017-06-20 14:20:07
【问题描述】:

我制作了一个名为 arrowsign.scn 的 scn 文件,其中包含如下图所示的箭头:

我写了一段代码来加载箭头对象:

SCNNode *node = [SCNNode node];
SCNNode *a[10];
for (int i = 0;i<10;i++){
    a[i] = [scene.rootNode childNodeWithName:@"arrowsign" recursively:NO];//just one arrow in arrowsign.scn
    a[i].scale = SCNVector3Make(0.15f, 0.15f, 0.15f);
    a[i].position = SCNVector3Make(1+i, 0, 0);
    [node addChildNode:a[i]];
}
[scene.rootNode addChildNode:node];

理想情况下,屏幕上会显示一行箭头。但是,只显示一个箭头。我怎样才能实现我的目标?

【问题讨论】:

    标签: ios objective-c scenekit


    【解决方案1】:

    我认为你可以简单地克隆节点

    let sphereNode2 = sphereNode.clone()
    sphereNode2.position = SCNVector3(x: 0, y: 0, z: -20)
    scene.rootNode.addChildNode(sphereNode2)
    

    【讨论】:

    • SCNNode *sign = [scene.rootNode childNodeWithName:@"arrowsign" recursive:YES]; sign.scale = SCNVector3Make(0.15f, 0.15f, 0.15f); sign.position = SCNVector3Make(1, 0, 0); SCNNode *parentNode = [SCNNode 节点]; for (int i=0;i
    【解决方案2】:

    不要创建新的 SCNNode 实例,而是创建 SCNReferenceNode 实例以便将您的 .scn 文件加载到其中。

    【讨论】:

    • 我做了 SCNReferenceNode *a[10] 但仍然只显示一个箭头。
    • 实际上我不确定如何将我的 .scn 文件加载到 SCNReferenceNode 中。也许这会导致“单箭头”问题。
    • 查看thread
    猜你喜欢
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2019-09-21
    • 2013-05-08
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多