Ios 将场景基特平面与立方体的面对齐

Ios 将场景基特平面与立方体的面对齐,ios,swift,scenekit,Ios,Swift,Scenekit,我在SceneKit中创建了一个scnbox,并试图在用户触摸的面部添加一个圆形平面 我可以使用hittest将SCNPlane添加为接触点的子节点,但我正在努力将平面定向到被接触的面 作为命中测试的一部分提供的localnormal向量似乎是我需要的,但我不知道如何使用它。通常我会使用EulerAngles属性确定方向,但localnormal看起来是一个向量。我试着看(看:),它需要一个矢量,但似乎不起作用。 如有任何建议,我们将不胜感激。下面的代码示例取自ToucheSStart。“结果”

我在SceneKit中创建了一个scnbox,并试图在用户触摸的面部添加一个圆形平面

我可以使用hittest将SCNPlane添加为接触点的子节点,但我正在努力将平面定向到被接触的面

作为命中测试的一部分提供的localnormal向量似乎是我需要的,但我不知道如何使用它。通常我会使用EulerAngles属性确定方向,但localnormal看起来是一个向量。我试着看(看:),它需要一个矢量,但似乎不起作用。 如有任何建议,我们将不胜感激。下面的代码示例取自ToucheSStart。“结果”是SCNHITTSRESULT:

//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)

请添加一些代码,以便其他人能够理解您所做的事情,直到现在我已经添加了代码示例。作为一个更新,我通过乘以localNormal向量来给出长距离,并使用look(at:)函数来接近我所需要的。我本以为会有一个更干净的方法来做这件事,但不知道如何…请添加一些代码,以便其他人可以理解你做了什么,直到现在我已经添加了代码示例。作为一个更新,我通过乘以localNormal向量来给出长距离,并使用look(at:)函数来接近我所需要的。我本以为会有一个更干净的方法来做这件事,但不知道如何。。。