我在SceneKit中创建了一个scnbox,并试图在用户触摸的面部上添加一个圆形平面。
我可以使用hittest将SCNPlane添加为接触点上的子节点,但是我正在努力使平面朝向被触摸的脸部。
作为命中测试的一部分提供的局部法线向量似乎是我所需要的,但我不确定如何使用它。通常我会使用EulerAngles属性进行定向,但是localnormal看起来是一个向量。我尝试了使用vector3的Look(at :),但似乎不起作用。 任何建议将不胜感激。下面的代码示例摘自touchesBegan。 “结果”是SCNHitTestResult:
//Draw circular plane, double sided
let circle = SCNPlane(width: 0.1, height: 0.1) //SCNSphere(radius: 0.1)
circle.cornerRadius = 0.5
circle.materials.first?.diffuse.contents = UIColor.black
circle.materials.first?.isDoubleSided = true
let circleNode = SCNNode(geometry: circle)
//Set position to hit test
circleNode.position = result.localCoordinates
let lookAtPoint = SCNVector3(result.localNormal.x * 100, result.localNormal.y * 100, result.localNormal.z * 100)
//Align to far point on normal
circleNode.look(at: lookAtPoint)
//Add to touched node
result.node.addChildNode(circleNode)