3

我正在使用 ARKit 找到水平面,然后使用 SCNPlane 几何图形用网格图像覆盖该平面。如果我使用以下代码来更新我的平面扩展,那么它工作正常。

func update(anchor: ARPlaneAnchor) {

    self.planeGeometry.width = CGFloat(anchor.extent.x * Float(scaleX)); // scaleX is 10
    self.planeGeometry.height = CGFloat(anchor.extent.z);
    self.position = SCNVector3Make(anchor.center.x, 0, anchor.center.z);

    let planeNode = self.childNodes.first!  
    planeNode.physicsBody = SCNPhysicsBody(type: .kinematic, shape: SCNPhysicsShape(geometry: self.planeGeometry, options: [:]))
} 

如果我调整 planeGeometry 高度,如下所示:

self.planeGeometry.height = CGFloat(anchor.extent.z * Float(10));

然后它显示在 x 轴和 z 轴上延伸的平面,但由于某种原因,平面也改变了 y 中的位置。它不是在找到的表面之上,而是漂浮在表面之上。

有任何想法吗?我只希望平面在 x 轴和 z 轴上更大,并且仍然坐在表面上。

4

0 回答 0