【发布时间】:2019-04-04 15:16:22
【问题描述】:
如果 ARCamera 向左、向右、向上或向下移动,并且该节点在 ARCamera 中变得不可见。我想指出你需要向上/向下/向右/向左移动相机的箭头。
【问题讨论】:
-
您好,您有没有找到一种方法来检测节点的方向,即向左或向右。如果您能提供一些示例代码将会很有帮助。
标签: ios swift xcode arkit scnnode
如果 ARCamera 向左、向右、向上或向下移动,并且该节点在 ARCamera 中变得不可见。我想指出你需要向上/向下/向右/向左移动相机的箭头。
【问题讨论】:
标签: ios swift xcode arkit scnnode
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:)里面使用它
编辑: 这里的箭头是一个节点(3d 箭头)。记住箭头的点需要面对-z轴
let scene = SCNScene(named: "art.scnassets/arrow.dae")
let arrow = scene?.rootNode.childNode(withName: "arrow", recursively: false)
arrow.constraints = [SCNLookAtConstraint.init(target: node)]
【讨论】:
arrow.constraints = [SCNLookAtConstraint.init(target: displayNode)]SCNLookAtConstraint