Получение размера самолета от RayCasting - PullRequest
1 голос
/ 10 октября 2019

Согласно этой статье от Apple Луч-Кастинг и Хит-Тестирование . Я должен использовать лучевую отливку, предоставляемую RealityKit, для обнаружения поверхностей, вместо того, чтобы тестировать попадание, предоставляемое ARKit, как говорит яблоко

, но функции проверки попадания остаются для совместимости

,Однако я не могу найти способ узнать размер поверхности, обнаруженной запросом raycast.

Таким образом, согласно этому коду:

    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)
}

Я ожидаю, что создаваемая мной плоскость получит размер и положение обнаруженной плоскости. Однако этого не происходит.

Итак, мой вопрос: подходит ли литье лучей для определения размера и местоположения поверхностей? Или просто для проверки местоположения 2-й точки на поверхности.

1 Ответ

1 голос
/ 10 октября 2019

Документация Apple гласит: здесь :

Raycast метод экземпляра выполняет приведение выпуклых лучей ко всей геометриив сцене для луча данного происхождения, направления и длины .

и здесь :

Raycast метод экземпляра выполняет выпуклый луч на всю геометрию в сцене для луча между двумя конечными точками .

В обоих случаях методы радиопередачи используются для обнаружения пересечений . И в обоих случаях эти методы возвращают массив результатов попаданий при столкновении .

Это все, для чего был создан raycast.

...