2016-09-28 6 views
0

2つのSCNNodeのジオメトリタイプがSCNBoxに設定されています。ノードのSceneKit配置

let node1 = SCNNode(geometry: SCNBox(width: 10.0, height: 10.0, length: 10.0, chamferRadius: 0.0)) 
let node2 = SCNNode(geometry: SCNBox(width: 20.0, height: 10.0, length: 10.0, chamferRadius: 0.0)) 

node1.position.x = 0.0 
node2.position.x = 10.0 

scene.rootNode.addChildNode(node1) 
scene.rootNode.addChildNode(node2) 

私は私のシーンを見てみると、その後のノードは、しかし、彼らはいけない、または、彼らが必要、重複していますか?私は同時にカメラを操作しません。現時点では、物理フィールドは設定されていません。

Iは、次の印刷:最初に設定したものと同じように印刷されている値は次に

node1.presentationNode.position.x 
node2.presentationNode.position.x 

又は

(node1.geometry as! SCNBox).width 
(node2.geometry as! SCNBox).width 

を。 ノードのアンカーポイントはデフォルトで左下ですか? 奇妙なことに、touchesBegan/touchesEndedでノードを移動して同じ位置に配置すると、ノードはオーバーラップしません。 SceneKitのノードを正しく配置する方法は?

+0

分離の違いを見たとき、どのような出来事がありましたか?あなたはカメラを操作するときにこれが起こっていますか? – bpedit

+0

私の編集を見てください。上の例のコードでは、ノードは常に重複しています。しかし、ノードをtouchesBeganに移動して正確に同じ位置に置くと、ノードは重複しません。 – BlueLettuce16

答えて

0

ありがとうございました。 解決策を見つけました。 ノードは、ノードの幅の中央にあるアンカーポイントに基づいて配置されます。

+1

あなたの答えを「Accepted」とマークして、質問がクローズ/回答として表示されるようにしてください。 –

0

あなたの軸が混ざっていると思います。 node2の幅は20ですが、node1(幅10)は10だけ移動しています。20(または小さなギャップの場合は23)まで移動してみてください。

+0

node2を10、node1の幅を10とします。 – BlueLettuce16

+0

シーンの歓声のスクリーンショット –

関連する問題