2017-10-08 88 views
0

我把SCNNode放到了一个场景中。我想提供适当的空间旋转,因为这个节点是一个金字塔。我想Z axis指向V2点,X axis指向V1点(这些V2和V1点是动态计算的,当然在这种情况下,轴之间的角度将是90度,因为我正确计算它们)。SCNNode方向问题

问题:我不能点X轴,因为SCNLookAtConstraint(target: nodeWithV2)点只有Z轴,以及我看到的是,Z轴是确定的,但X轴始终是随机的,这就是为什么我的金字塔方向永远是错的。我怎样才能指向X轴?

这里是我的代码:

let pyramidGeometry = SCNPyramid(width: 0.1, height: 0.2, length: 0.001) 
pyramidGeometry.firstMaterial?.diffuse.contents = UIColor.white 
pyramidGeometry.firstMaterial?.lightingModel = .constant 
pyramidGeometry.firstMaterial?.isDoubleSided = true 
let nodePyramid = SCNNode(geometry: pyramidGeometry) 
nodePyramid.position = SCNVector3(2, 1, 2) 
parent.addChildNode(nodePyramid) 
let nodeZToLookAt = SCNNode() 
nodeZToLookAt.position = v2 
parent.addChildNode(nodeZToLookAt) 
let constraint = SCNLookAtConstraint(target: nodeZToLookAt) 
nodePyramid.constraints = [constraint] 

但是,这只会为Z轴方向,这就是为什么X轴始终是随机的,所以旋转始终是随机的。如何将X轴方向设置为我的点V1?

回答

2

起始iOS 11 SCNLookAtConstraint有一个localFront属性,允许您更改哪个轴用于定位受约束节点。

+0

非常感谢你 –