Ifølge denne artikkelen ved eple Ray-Casting og Hit-testing . Jeg skal bruke raycasting levert av RealityKit å oppdage overflatene i stedet for treffet testing levert av ARKit som Apple sier
men treff-testing funksjoner er til stede for kompatibilitet
. Men jeg kan ikke finne en måte å vite omfanget av overflaten oppdaget av raycast spørringen.
Så ifølge denne koden:
func startRayCasting() {
guard let raycastQuery = arView.makeRaycastQuery(from: arView.center,
allowing: .estimatedPlane,
alignment: .vertical) else {
return
}
guard let result = arView.session.raycast(raycastQuery).first else {
return
}
let transformation = Transform(matrix: result.worldTransform)
let plane = Plane(color: .green, transformation: transformation)
plane.transform = transformation
let raycastAnchor = AnchorEntity(raycastResult: result)
raycastAnchor.addChild(plane)
arView.scene.addAnchor(raycastAnchor)
}
Jeg forventer at flyet jeg skaper ville få størrelse og plassering av flyet oppdaget. Men dette skjer ikke.
Så mitt spørsmål er, er raycasting egnet for deteksjon av overflater størrelse og plassering. Eller er det bare for å sjekke om 2d punktet er en overflate eller ikke.