首页 > 解决方案 > 为 SceneKit 地形节点创建 SCNPhysicsBody?

问题描述

我有一个从 SceneKit 中的柏林噪声创建的地形,现在我想向地形添加物理。但是,简单地terrain.physicsBody = SCNPhysicsBody(type: .static, shape: nil)在 SceneKit 中将地形的物理形状自动转换为凸面形状会导致结果。现在,如果您将任何东西放在地形上,它将漂浮在地形边界框的平面上的空中,而不是粘在地面上。

如何修改 SCNPhysicsBody 的行为,使其模拟地形的物理特性?

标签: swiftscenekitphysicsterrain

解决方案


由于 SceneKit 没有专用的地形对撞机,也不允许您创建自定义对撞机,因此我通过使用凹多面体物理形状来解决它。

node.physicsBody = SCNPhysicsBody(type: .static, shape: SCNPhysicsShape(geometry: geometry, options: [SCNPhysicsShape.Option.type: SCNPhysicsShape.ShapeType.concavePolyhedron]))


推荐阅读