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];

关于ios - 在ARkit中,如何创建与网格相同的物理物体?现在我已经创建了边框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51238417/

10-12 00:18