0
次のコードをSCNBoxを作成して画面に表示します。これは動作しますが、私は他の方向に電話を回すとすぐに、力のインパルスは更新されず、常に同じ古い位置でボックスを撃ちます。ここでARKit - ユーザーの電話方向への強制適用
がコードされています。私は力を加えるところ
@objc func tapped(recognizer :UIGestureRecognizer) {
guard let currentFrame = self.sceneView.session.currentFrame else {
return
}
/
let box = SCNBox(width: 0.2, height: 0.2, length: 0.2, chamferRadius: 0)
let material = SCNMaterial()
material.diffuse.contents = UIColor.red
material.lightingModel = .constant
var translation = matrix_identity_float4x4
translation.columns.3.z = -0.01
let node = SCNNode()
node.geometry = box
node.geometry?.materials = [material]
print(currentFrame.camera.transform)
node.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
node.physicsBody?.applyForce(SCNVector3(0,2,-10), asImpulse: true)
self.sceneView.scene.rootNode.addChildNode(node)
}
ライン26があるが、それは考慮に入れ、ユーザの現在の電話の向きを取ることはありません。どうすれば修正できますか?
ありがとうございました!魅力的なように働いた:)素晴らしい一日を! –