我正在使用 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 轴上更大,并且仍然坐在表面上。