前提・実現したいこと
物理情報を持った3Dモデルを、ARKitで検出した平面に落下させたい。
(雨が降る様に多数の3Dモデルを落下させ、床に散らばっている状態にしたい)
発生している問題・エラーメッセージ
平面ノード上の低い位置から落下させた場合は、想定どおりの挙動となりますが、
高い位置から落下させると、3Dモデルが平面上に落下せず、平面外に落ちてしまいます。
- 低い位置から落とした場合
- 高い位置から落とした場合
以下が該当箇所のコードとなります。
3DモデルのY座標の設定がおかしいのでしょうか...。
アドバイスをいただけましたら、幸いです。
該当のソースコード
swift
1 @objc func update(tm: Timer) { 2 3 if let ballNode = self.ballNode, let planeNode = self.planeNode { 4 5 let cloneBall = ballNode.clone() 6 let (min, max) = planeNode.boundingBox 7 8 let x = Float.random(in: min.x...max.x) 9 let y = Float.random(in: min.y...max.y) 10 let z = Float.random(in: min.z...max.z) 11 12 let cloneBallPosition = planeNode.convertPosition(SCNVector3(x, y, z), to: nil) 13 14 cloneBall.position = cloneBallPosition 15 16 //If I set the y coordinate 0.05, it will work. 17 //cloneBall.position.y += 0.05 18 19 //If I set the y coordinate 1, it will not work. 20 cloneBall.position.y += 1 21 22 sceneView.scene.rootNode.addChildNode(cloneBall) 23 } 24 } 25
※こちら他サイトでも質問させていただいております。
stackoverflow
あなたの回答
tips
プレビュー