コードはうまく見え、うまくいくはずです。私は以下のコードで試してみました:ARKitテンプレートを使って新しいアプリケーションを作成した後、関数viewDidLoadを置き換えました。
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
let node = SCNNode(geometry: box)
node.position = SCNVector3(0,0,0)
sceneView.scene.rootNode.addChildNode(node)
}
元の点(0、0、0)にボックスを作成します。残念ながら、あなたのデバイスは箱の中に入っているので、あなたはその箱をまっすぐに見ることができません。ボックスを表示するには、デバイスを遠くに移動します。
添付された画像は、私のデバイスを移動した後のボックスです:
あなたは、すぐにそれを見る前に少しボックスを移動、色を追加し、第1の材料が両面なるようにしたい場合(それを見たり外に見るために:
let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
box.firstMaterial?.diffuse.contents = UIColor.red
box.firstMaterial?.isDoubleSided = true
let boxNode = SCNNode(geometry: box)
boxNode.position = SCNVector3(0, 0, -1)
sceneView.scene.rootNode.addChildNode(boxNode)
私はビルドエラーを取得し、この部分を変更しました。それは動作しませんでしたので、私はこれに変更しました。 'node.position = SCNVector3Make((hitResult?.worldTransform.columns.3.x)!,(hitResult?.worldTransform.columns.3.y)!、(hitResult?.worldTransform.columns.3.z)! ) ' – ParalaxWobat
これでうまくいきましたか? – OxyFlax
キューブを追加しませんでした。 ARのシーンにキューブを追加するだけの簡単なことを試していました。なぜそれが動作しないのか分かりません。 – ParalaxWobat