如何在 SceneKit 中加载多个对象?
How can I load multiple objects in 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];
理想情况下,屏幕上会显示一行箭头。但是,只有一个箭头显示。我怎样才能实现我的目标?
创建 SCNReferenceNode 个实例,而不是创建新的 SCNNode 实例,以便将您的 .scn 文件加载到其中。
我想你可以简单地克隆节点
let sphereNode2 = sphereNode.clone()
sphereNode2.position = SCNVector3(x: 0, y: 0, z: -20)
scene.rootNode.addChildNode(sphereNode2)
我制作了一个名为 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];
理想情况下,屏幕上会显示一行箭头。但是,只有一个箭头显示。我怎样才能实现我的目标?
创建 SCNReferenceNode 个实例,而不是创建新的 SCNNode 实例,以便将您的 .scn 文件加载到其中。
我想你可以简单地克隆节点
let sphereNode2 = sphereNode.clone()
sphereNode2.position = SCNVector3(x: 0, y: 0, z: -20)
scene.rootNode.addChildNode(sphereNode2)