2017-10-08 21 views
0

シーンにSCNNodeを配置しました。このノードはピラミッドなので、空間で適切な回転を提供したい。私はZ axisV2ポイントを指し、X axisV1ポイント(これらのV2とV1ポイントは動的に計算されます。もちろん、この場合は正しく計算されるので、軸間の角度は90度になります)を指すようにします。SCNNode方向の問題

問題:私はSCNLookAtConstraint(target: nodeWithV2)ポイントだけZ軸ので、X軸を指し、そして私が見ることはZ軸がOKであるということですが、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] 

しかし、X軸は常にランダムである理由だけでは、Z軸の方向を設定していること、それはですので、回転は常にランダムです。 X軸方向をポイントV1に設定するにはどうすればよいですか?

答えて

2

starting iOS 11 SCNLookAtConstraintには、localFrontプロパティがあります。このプロパティを使用すると、制約付きノードの向きを変更する軸を変更できます。

+0

ありがとう –

関連する問題