以下のコードは、タッチしたポイントにSCNPlaneを配置しますが、アプリケーション開始時の位置にプレーンを配置(回転)します。私は理想的には、ノードを物理的な壁面またはカメラの現在の向きに向けるのが理想的です。これはARKitでどのように行われますか?ARKitでカメラへのSCNNodeの向きを変更する方法
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else {return}
let result = sceneView.hitTest(touch.location(in: sceneView), types: [ARHitTestResult.ResultType.featurePoint])
guard let hitResult = result.last else {return}
let hitTransform = SCNMatrix4.init(hitResult.worldTransform)
let hitVector = SCNVector3Make(hitTransform.m41, hitTransform.m42, hitTransform.m43)
createPlane(position: hitVector)
}
func createPlane(position: SCNVector3) {
let background = SCNNode()
background.geometry = SCNPlane.init(width: 0.12, height: 0.10) // better set its size
background.geometry?.firstMaterial?.diffuse.contents = "odinBW2.jpeg"
background.position = position
sceneView.scene.rootNode.addChildNode(background)
}
あなたはそれに対して解決策を見つけましたか? –
最後に、arkitの表示を開始する前に、適切な方向に電話機を向けるように指示するように指示しました。 –