2016-08-04 5 views
0

Ist es möglich, die Kamera auf ein Modell aussehen zu lassen? Hier ist, was ich versucht habe:SceneKit: Kamera zum Betrachten des Modells

// Add Character 
func addModel(name:String) 
{ 
    // Remove old model 
    self.modelNode.removeFromParentNode() 
    modelNode = SCNNode() 

    // Load COLLADA Character 
    if let myScene = SCNScene(named: "Assets.scnassets/"+name+"/"+name+".dae") 
    { 
     // Recurse through all the child nodes in the Character and add to modelNode 
     for node in myScene.rootNode.childNodes as [SCNNode] 
     { 
      modelNode.addChildNode(node) 
     } 

     // Add modelNode to scene 
     self.rootNode.addChildNode(modelNode) 
    } 
    else 
    { 
     print("Error loading character: "+name) 
    } 
} 

// Add Camera 
func addCamera() 
{ 
    // Remove old model 
    self.cameraNode.removeFromParentNode() 
    cameraNode = SCNNode() 

    // Set up a new camera 
    cameraNode.camera = SCNCamera() 

    // Set up LookAtConstraint 
    let constraint = SCNLookAtConstraint(target: modelNode) 
    cameraNode.constraints = [constraint] 

    self.rootNode.addChildNode(cameraNode) 
} 

Dies führt zu nichts. Bedeutung, ich kann das Modell nicht sehen. Wenn ich die addCamera() nicht ausführen, wird das Modell angezeigt. Aber ich möchte die Kamera auch auf das Modell schauen.

+0

Setzen Sie nach dem Aufruf von "addCamera" den Blickwinkel der Ansicht auf Ihren neuen Kamera-Knoten zurück? – Toyos

+0

Nein, tue ich nicht. Wie mache ich das? – Fredrik

Antwort

0

Mit SCNLookAtConstraint(target: modelNode.childNodeWithName) stattdessen funktionierte für mich. Ich nehme an, dass der Elternknoten die Childs-Einschränkungen nicht hielt.

Verwandte Themen