Узлы SCN имеют позиции в векторах, см. документацию
Из этих двух свойств ваших двух сцен вы можете вычислить расстояние между ними с помощью простой физики.Например, вы можете вычислить расстояние в 2D и расстояние в 3D мире.Пример можно сделать с этими двумя расширениями.
extension SCNVector3 {
static func distanceFrom(vector vector1: SCNVector3, toVector vector2: SCNVector3) -> Float {
let x0 = vector1.x
let x1 = vector2.x
let y0 = vector1.y
let y1 = vector2.y
let z0 = vector1.z
let z1 = vector2.z
return sqrtf(powf(x1-x0, 2) + powf(y1-y0, 2) + powf(z1-z0, 2))
}
}
И тогда в вашем основном классе вы можете вызывать статическую функцию следующим образом:
let scnNode1 = SCNNode() //Your test node
let scnNode2 = SCNNode() //Your test node
let distance = SCNVector3.distanceFrom(vector: scnNode1.position, toVector: scnNode2.position)