在ARkit中,如何创建与网格相同的物理体?现在我已经创建了边界框

In ARkit, how to create physics body with same as mesh? now I have created with bounding box

let physicsShape = SCNPhysicsShape(geometry: cloneNode.geometry!, options: [SCNPhysicsShape.Option.type : SCNPhysicsShape.ShapeType.boundingBox])
let physicsbody = SCNPhysicsBody(type: .dynamic, shape: physicsShape)
physicsbody.isAffectedByGravity = true
physicsbody.angularDamping = 1
cloneNode.physicsBody = physicsbody
sceneView.scene.rootNode.addChildNode(cloneNode)

但物理体与网格不匹配,因此它悬停在 scnfloor 上

请帮我解决这个问题,我也使用了凹多面体 - 在这种情况下它正在创建精确的形状但对象不能声明为动态的。 ????

只有当您的某些角顶点没有面或应用了一些额外的填充时才会发生这种情况。

您可以通过以下代码启用调试选项,并检查边界框是否与物理形状边界匹配。

scnView.debugOptions = SCNDebugOptionShowBoundingBoxes | SCNDebugOptionShowPhysicsFields | SCNDebugOptionShowWireframe;

您也可以使用以下代码为您的几何图形手动设置边界框

SCNVector3 v1=SCNVector3Make(0, 0, 0);
SCNVector3 v2=SCNVector3Make(5, 5, 5);

[boxCharacter setBoundingBoxMin:&v1 max:&v2];

感谢您的回答 max9xs

swift4的答案如下

 boxNode.boundingBox.min = SCNVector3(0.0,0.0,0.0)
 boxNode.boundingBox.max = SCNVector3(1.0,1.0,1.0)

这将更改对象的边界框..