if let pointOfView = sceneView.pointOfView{
let isMaybeVisible = sceneView.isNode((displayNode.presentation), insideFrustumOf: pointOfView)
if isMaybeVisible{
if arrowVisible{
arrow.removeFromParentNode()
}
}else{
if !arrowVisible{
sceneView.pointOfView?.addChildNode(arrow)
}
}
}
isNode(_:insideFrustumOf:)
здесь проверяет, является ли узел видимым в ARCamera.
Используйте его внутри renderer(_:updateAtTime:)
Edit:
Стрелка здесь - это узел (3-я стрелка). Помните, что точка стрелки должна быть направлена на ось -z
let scene = SCNScene(named: "art.scnassets/arrow.dae")
let arrow = scene?.rootNode.childNode(withName: "arrow", recursively: false)
arrow.constraints = [SCNLookAtConstraint.init(target: node)]