'.generateBox' 方法生成的对象大小不正确

The size of the object generated by '.generateBox' method is not correct

我正在尝试使用 RealityKit 和 SwiftUI 在 AR 中放置指定大小的对象。但是,显示的对象比代码中指定的大小稍小。 如何让对象以正确的大小显示?

这是当前代码:

func addObject() {
    let mesh = MeshResource.generateBox(width: Float(1.0), 
                                       height: Float(1.0), 
                                        depth: Float(1.0))
    let material = SimpleMaterial(color: .gray, 
                              roughness: 0.5, 
                             isMetallic: true)
    let modelEntity = ModelEntity(mesh: mesh, 
                             materials: [material])
    let anchorEntity = AnchorEntity(plane: .horizontal)
    modelEntity.generateCollisionShapes(recursive: true)
    self.installGestures([.rotation, .translation] ,for: modelEntity)
    anchorEntity.name = "BoxAnchor"
    anchorEntity.addChild(modelEntity)
    self.scene.addAnchor(anchorEntity)
}

我已经确认我能够使用 ARCoachingOverlayView 和 FocusEntity 正确检测到飞机。

任何建议都有帮助。谢谢

键入方法 .generateBox(size: 1).generateBox(width: 1, height: 1, depth: 1) 允许您创建一个真正的一米盒子。即使你的跟踪很好,有时你觉得这个立方体比 1m X 1m X 1m 小,因为对象的遮挡选项是禁用 - 换句话说,这个立方体“爬”到离你最近的现实世界物体上,它看起来比实际更小更近。那是因为如果没有遮挡,您的模型将始终与视频中的真实世界对象合成。

有时,(由于跟踪不当)您的模型会“飞离”它必须位于的位置。

在这两种情况下,打开遮挡都是一个好主意。要了解如何启用基于 Z 通道的对象遮挡,请阅读 this post.

P.S.

也关注这些