Как определить, перекрываются ли два SCNNodes
в SCNView
? Они добавлены в позиции different x an z axis
, но с точки зрения камеры они выглядят так, как будто они накладываются друг на друга. Я хочу обнаружить это, а затем переместить один из них вверх или вниз.
Проверьте, не перекрываются ли SCNNodes в поле зрения
Ответы (1)
Для тех, кто будет бороться с этой проблемой позже... Я исправил это с помощью 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() }
}
Сначала я нашел все перекрывающиеся узлы, а затем просто удалил их из родительского узла.
person
bezoadam
schedule
01.05.2019