【问题标题】:Check if SCNNodes overlap in view检查 SCNNodes 是否在视图中重叠
【发布时间】:2019-05-01 16:26:10
【问题描述】:

如何检测两个SCNNodes是否在SCNView中重叠?它们被添加到different x an z axis 位置,但从相机的角度来看,它们看起来像是重叠在一起。我想检测到这一点,然后向上或向下移动其中一个。

【问题讨论】:

    标签: swift scenekit arkit scnnode


    【解决方案1】:

    对于那些以后会遇到这个问题的人...... 我用 SCNNode 的simdWorldPosition 属性修复了这个问题。代码如下:

    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() }
    }
    

    首先我找到了所有重叠的节点,然后我简单地将它们从父节点中删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多