【发布时间】:2021-03-01 15:57:17
【问题描述】:
我正在向我的ARView 添加一个包含一个实体的场景。我想知道如何才能获得实体的锚点和相机之间的距离。我知道如何获得相机的当前位置,但是我为arScene 获得的位置肯定是错误的,因为减去这两个位置不会产生正确的位置。下面是一些代码。
import RealityKit
class ViewController: UIViewController, ARSessionDelegate {
let arScene = try! TestProj.loadScene()
@IBOutlet var sceneView: ARView!
override func viewDidLoad() {
...
sceneView.scene.addAnchor(arScene)
...
}
func session(_ session: ARSession, didUpdate frame: ARFrame) {
// Calculate distance here
let cameraPos = frame.camera.transform.columns.3
let entityPos = // Position of entity's anchor
let distance = // Find distance here
}
}
【问题讨论】:
-
场景的位置是什么意思?您实际添加的是带有 HasAnchor (AnchorEntity) 的实体。如果您要向其中添加许多实体子实体,您想要所有这些子实体的边界框中心,还是只是 AnchorEntity 的位置?
-
锚实体的位置,我会更新我的问题谢谢!
标签: swift augmented-reality arkit realitykit