2013-10-07 2 views
3

Existe-t-il un moyen de créer un objet SCNNode à partir d'un objet COLLADA, puis d'ajouter le noeud en tant qu'enfant de l'objet rootNode?Objets SceneKit et COLLADA

Je vois le avec ScenKit je peux créer un SCNScene à partir d'un fichier .dae en utilisant

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

Mais je ne peux pas trouver un moyen de créer un nœud à partir seulement d'un DAE.

Répondre

6

Si vous voulez lire des objets d'un fichier et les insérer dans une autre scène, vous pouvez créer une source de scène et obtenir les entrées à partir de là.

Création d'une source de scène est très similaire à la création d'une scène complète

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

Si vous connaissez l'identifiant du nœud que vous cherchez, vous pouvez l'obtenir directement à l'aide

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

Dans le cas contraire vous pouvez demander les identifiants pour tous les nœuds et à partir de là, identifier l'identifiant que vous recherchez.

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

Une fois que vous avez une instance SCNScene créé à partir d'un fichier Collada, vous pouvez récupérer un nœud avec son nom avec:

SCNNode * myNode = [myScene.rootNode childNodeWithName: @ "aNodeName" récursive: OUI ]