如何在SceneKit中加载多个对象?

我创建了一个名为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]; 

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

我想你可以简单地克隆节点

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

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