ReakityKitを使って3Dオブジェクトを定期的に生成して落下させたいと考えています。
ですが、ModelEntityにPhysicsBodyComponentを付与しても落下せずにそのままの位置に表示され続けてしまいます。
swift
1import UIKit 2import RealityKit 3import SceneKit 4 5class ViewController: UIViewController { 6 7 @IBOutlet var arView: ARView! 8 9 var anchor = AnchorEntity(plane: .horizontal, minimumBounds: [0.15, 0.15]) 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 arView.scene.anchors.append(anchor) 15 16 Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(createBox), userInfo: nil, repeats: true) 17 } 18 19 @objc private func createBox(){ 20 let boxMesh = MeshResource.generateBox(size: 0.1) 21 // 光源を無視する単色を設定 22 let boxMaterial = UnlitMaterial(color: UIColor.red) 23 let boxModel = ModelEntity(mesh: boxMesh, materials: [boxMaterial]) 24 boxModel.position = SIMD3<Float>(0.0, 0.2, 0.0) 25 //物理ボディの設定 26 let physicsBody = PhysicsBodyComponent(massProperties: .default, material: .default, mode: .kinematic) 27 boxModel.physicsBody = physicsBody 28 anchor.addChild(boxModel) 29 30 } 31} 32
ReakityKitでは物理空間を再現して物体を落下させるのに別に設定が必要なのでしょか?ドキュメントを読んでもわかりませんでした。
あなたの回答
tips
プレビュー