Проверьте, перекрываются ли узлы SCNNode - PullRequest
0 голосов
/ 16 февраля 2019

Как определить, перекрываются ли два SCNNodes в SCNView?Они добавляются в положение different x an z axis, но с точки зрения камеры они выглядят так, как будто они накладываются друг на друга.Я хочу обнаружить это, а затем переместить один из них вверх или вниз.enter image description here

1 Ответ

0 голосов
/ 01 мая 2019

Для тех, кто будет бороться с этой проблемой позже ... Я исправил это с помощью simdWorldPosition свойства SCNNode.Вот код:

let overlapping = wayNamedLocationNode.infoTextNodes.filter { overlappingTextNode in
                    let x = abs(overlappingTextNode.simdWorldPosition.x - textNode.simdWorldPosition.x)
                    let z = abs(overlappingTextNode.simdWorldPosition.z - textNode.simdWorldPosition.z)
                    if ((x < 4 && x > 0) || (z < 4 && z > 0)) {
                        return true
                    } else {
                        return false
                    }
                }
if overlapping.count > 0 {
     overlapping.forEach { $0.removeFromParentNode() }
}

Сначала я нашел все перекрывающиеся узлы, а затем просто удалил их из родительского узла.

...