我用SCNPlane创建了Wall。在该平面上,我添加了另一个平面,用户将设备指向该平面
但是由于两个平面的位置相同,所以新添加的平面正在闪烁。
那么我如何与墙节点和平面节点保持距离
我如何添加平面节点。
let hitTestScene = self.sceneView.hitTest(self.sceneView.center, options:[SCNHitTestOption.categoryBitMask : 16])
if let first = hitTestScene.first {
if first.node.name == NodeNames.wallNode {
let value = MathHelper().getMeasurementBetween(vector1: lastNodePosition, and: first.worldCoordinates)
let node = SCNNode(geometry: SCNPlane(width: CGFloat( value) , height: CGFloat(value)))
node.geometry?.firstMaterial?.isDoubleSided = true
node.name = "Plane1"
node.geometry?.firstMaterial?.diffuse.contents = UIColor.red.withAlphaComponent(1)
node.eulerAngles = first.node.eulerAngles
node.position = lastNodePosition
self.sceneView.scene.rootNode.addChildNode(node)
}
}
红色飞机不断滑动(出现-消失)
我尝试了node.position.z -= 0.2
,但是由于node.eulerAngles
任何帮助将不胜感激
答案 0 :(得分:0)
我知道了。
通过设置rendringOrder和readsFromDepthBuffer
我可以停止这种轻弹效果
extension SCNNode {
func renderOnTop() {
self.renderingOrder = 2
if let geom = self.geometry {
for material in geom.materials {
material.readsFromDepthBuffer = false
}
}
for child in self.childNodes {
child.renderOnTop()
}
}
}
希望某些问题可以使用