【发布时间】:2018-09-05 17:02:38
【问题描述】:
我正在导入 DAE 格式的对象,我想将其用作碰撞对象,但它是凹形的,但我无法在代码中实现它:
func addCollisionBox() {
let collisionBoxNode = SCNNode()
let collisionBox = importedCollisionBox.rootNode.childNodeWithName("pCube2", recursively: false)
collisionBoxNode.addChildNode(collisionBox!)
collisionBoxNode.position = SCNVector3Make(0, 0, 0)
collisionBoxNode.scale = SCNVector3Make(30, 20, 50)
//collisionBoxNode.physicsBody = SCNPhysicsBody.staticBody()
collisionBoxNode.physicsBody = SCNPhysicsBody.bodyWithType(SCNPhysicsShapeTypeConcavePolyhedron, shape: collisionBox) // This line errors
collisionBoxNode.physicsBody?.restitution = 0.8
collisionBoxNode.name = "collisionBox"
theScene.rootNode.addChildNode(collisionBoxNode)
}
无法让代码中包含 SCNPhysicsShapeTypeConcavePolyhedron 的代码行正常工作。
【问题讨论】:
-
请输入代码?如前所述,您的问题非常模糊,很难看出您在问什么。
-
对不起,我还没有写任何代码,但今晚会尝试一些。想象一个盖子打开的麦片盒。我希望动态对象在内部与此框发生碰撞。如果我使用 SCNBox 创建一个盒子,在这个盒子内初始化的动态对象会在模拟过程中立即弹出到外面。我知道基于对象法线的碰撞是如何工作的,但我对 SceneKit 不太熟悉。
-
我刚刚更新了我的原始帖子,谢谢。
-
我建议你把它打开,写一个答案,然后接受那个答案。