2013-10-07 7 views
3

Есть ли способ создать SCNNode, начиная с объекта COLLADA и затем добавить узел в качестве дочернего элемента rootNode?Объекты SceneKit и COLLADA

Я вижу с ScenKit я могу создать SCNScene, начиная с .dae файла с помощью

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

Но я не могу найти способ создать узел, начиная просто от DAE.

ответ

6

Если вы хотите читать объекты из файла и вставлять их в другую сцену, вы можете создать источник сцены и получить записи оттуда.

Создание источника сцены очень похоже на создание полной сцены

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

Если вы знаете идентификатор узла, которого вы ищете, то вы можете получить его непосредственно с помощью

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

В противном случае вы можете запросить идентификаторы для всех узлов и выяснить, какой идентификатор вы ищете.

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

После того, как у вас есть экземпляр SCNScene, созданный из файла Collada, вы можете получить любой узел с его названием:

SCNNode * MyNode = [myScene.rootNode childNodeWithName: @ "aNodeName" рекурсивно: ДА ];

Смежные вопросы