2013-10-07 73 views
3

有没有办法从COLLADA对象开始创建SCNNode对象,然后将该节点添加为rootNode的子节点?SceneKit和COLLADA对象

我看到与我ScenKit可使用

[SCNScene sceneWithURL:url options:nil error:&error];

创建从.dae文件SCNScene开始,但我无法找到一个方法来创建一个从DAE刚开始节点。

回答

6

如果您想从文件中读取对象并将它们插入到其他场景中,则可以创建场景源并从中获取条目。

创建一个场景光源是非常类似于创建一个完整的场景

SCNSceneSource *source = [SCNSceneSource sceneSourceWithURL:url options:nil]; 

如果你知道你正在寻找的节点的ID,那么你可以直接使用

SCNNode *someNode = [source entryWithIdentifier:@"yourIdentifier" withClass:[SCNNode class]]; 

否则得到它您可以要求所有节点的标识符,并从那里找出您要查找的标识符。

NSArray *nodeIdentifiers = [source identifiersOfEntriesWithClass:[SCNNode class]]; 
2

一旦你从Collada的文件中创建一个SCNScene例如,您可以检索其名称与任何节点:

SCNNode * MYNODE = [myScene.rootNode childNodeWithName:@ “aNodeName” 递归:YES ]。