SceneKit为复杂的“.DAE”对象定制形状

时间:2017-04-01 18:52:36

标签: 3d swift3 collision-detection game-physics scenekit

问题1:

与基本对象发生冲突的代码 - 管道工作不正确:

    let tubeGeometry = SCNTube(innerRadius: 2, outerRadius: 2.5, height: 2)
    let tubeMaterial = SCNMaterial()
    tubeMaterial.diffuse.contents = UIColor.green
    tubeGeometry.materials = [tubeMaterial]

    let tubeNode = SCNNode(geometry: tubeGeometry)
    tubeNode.position = SCNVector3(0, 0, 0)

    let tubeShape = SCNPhysicsShape(geometry: tubeGeometry, options: nil)
    let tubeBody = SCNPhysicsBody(type: .dynamic, shape: tubeShape)

    tubeNode.physicsBody?.categoryBitMask = collisionTube
    tubeNode.physicsBody?.collisionBitMask = collsionTarget
    tubeNode.physicsBody?.mass = 1
    tubeNode.physicsBody = tubeBody

    scene.rootNode.addChildNode(tubeNode)

截图:

TUBE COLLISION

为什么球在物体的顶部?

问题2:

我仔细阅读手册以使用 SCNPhysicsShape SCNPhysicsBody

研究了对DAE对象施加约束的所有可能方法。 并得出结论,所有限制都必须在对象的单个物理模型中编写复杂的SCNNode包。

找到非常有趣的答案:

LINK

我真的希望有一种方法可以像让DAEShape = SCNPhysicsShape(geometry:“*。DAE”) ......,否则设置与复杂对象的碰撞可能需要一个月或者更多的发展。

例如,如何设计复杂管“DAE”对象的碰撞,如截图中的任何建议? DAE OBJECT - COMPLEX TUBE

问题不在于性能,而在于以最直接的方式实现复杂3D对象的复杂约束,避免了编程的繁琐......

如何使用“DAE”对象的顶点,边和面设置物理约束?

我真的希望答案是...... 提前谢谢!

1 个答案:

答案 0 :(得分:0)

Vue.prototype.auth