2016-06-08 8 views
0

Ich habe einen 3D-Tunnel und einen laufenden Mann in.Ich mache diesen Tunnel in Blender und importierte es in Scenekit.Now, wenn ich auf den Mann klicken Sie beginnen zu laufen und streichen Die Wände des Tunnels. Ich möchte die Tunnelwände Statisch, so dass der bewegliche Mann nicht die Wände überqueren und nur innerhalb des Tunnels bewegen sollte. Ich wende Physik auf Tunnelknoten an, aber es funktioniert nicht, es gibt Nachricht als "Warnung, Nicht-Dreieck-Liste Elementtyp noch nicht in der Physik Form Generation unterstützt "Wie man Physik auf Collada Objekt Knoten in Scenekit anwenden

scene = SCNScene(named: "game.scnassets/UpdatedTunnel/second.dae")! 
    let Tunnel = scene.rootNode.childNodeWithName("SketchUp", recursively: true)! 
    TunnelNode.addChildNode(Tunnel) 

    scene.rootNode.addChildNode(TunnelNode) 

    TunnelNode.physicsBody = SCNPhysicsBody.staticBody() 

ich mein 3D-Tunnel Bild bin das Hochladen von hier sieht es aus wie Zylinder enter image description here Welche Form Physik i für die Kollisionserkennung gelten sollte. Kann mir jemand helfen, wie ich vermeiden kann, dass mein bewegender Charakter sich nicht von Wänden löst? Danke ....

Antwort

0

SceneKit beschwert sich, dass etwas in Ihrem Modell verhindert, dass es eine gültige SCNPhyicsShape erstellt.

Versuchen Sie, eine einfachere Form (in Ihrem 3D-Werkzeug) nur für Kollisionserkennungszwecke zu erstellen, und weisen Sie diese als SCNPhyicsShape für die Simulation zu.

Standardmäßig verwendet SceneKit die SCNGeometry des SCNNode (zu dem SCNPhysicsBody gehört) als SCNPhyicsShape, wenn Sie keinen SCN zuweisen.

Grüße, Karl.

+0

Ich versuche, Geometrie als Var-Form zu machen: SCNPhysicsShape? wenn lassen Geometrie = TunnelNode.geometry { Form = SCNPhysicsShape (Geometrie: Geometrie, Optionen: [SCNPhysicsShapeTypeKey: SCNPhysicsShapeTypeConcavePolyhedron]) var nodePhysicsBody = SCNPhysicsBody (Typ: SCNPhysicsBodyType.Static, Form: Form) TunnelNode.physicsBody = nodePhysicsBody nodePhysicsBody = SCNPhysicsBody.staticBody() Aber es funktioniert immer noch nicht.Wenn ich sage, dass ich Physik und Kollision in Blender anwenden, dann Scenekit akzeptieren oder nicht? – Alex