Я использую ARKit для обнаружения стен во время выполнения, я использую тест на удар типа .estimatedVerticalPlane при касании какой-либо точки экрана.Я пытаюсь применить вращение Y к узлу, соответствующему обнаруженной ориентации плоскости.
Я хочу вычислить вращение в:
private func computeYRotationForHitLocation(hitTestResult: ARHitTestResult) -> Float {
guard hitTestResult.type == .estimatedVerticalPlane else { return 0.0 }
// guard let planeAnchor = hitTestResult.anchor as? ARPlaneAnchor else { return 0.0 }
// guard let anchoredNode = sceneView.node(for: planeAnchor) else { return 0.0 }
let worldTransform = hitTestResult.worldTransform
let anchorNodeOrientation = ???
return .pi * anchorNodeOrientation.y
}
Как вывести anchorNodeOrientation для применения с учетом ориентации стеныВ этом посте это хорошо объясняется для типа проверки попадания, который предоставляет ARAnchor, но для оцененного VerticalPlane он равен нулю.( ARKit 1.5, как получить вращение вертикальной плоскости ).
Также, когда я делаю: po hitTestResult.worldTransform на отладчике, он печатает вращение для worldTransform на 91 градус и т. Д., Но я не могуполучить его из преобразования.