1

如何将 3D 对象附加到我的手机上,以便我可以四处移动,然后单击屏幕后 - 3D 对象应保持在 3D 空间中的当前位置?

4

1 回答 1

0

原生 RealityKit 方法

stick-and-drop@Rumata,这是您的代码在方法论方面的样子。应用启动后 5 秒内会自动掉落一个球体对象。实现 Tap Gesture 的方式相同(通过 Storyboard 或以编程方式,由您决定)。

import ARKit
import RealityKit

class ViewController: UIViewController {
    
    @IBOutlet var arView: ARView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let mesh = MeshResource.generateSphere(radius: 0.1)
        let sphere = ModelEntity(mesh: mesh)
        sphere.transform.translation = [0, 0,-1]

        let anchor = AnchorEntity(.camera)
        sphere.setParent(anchor)
        arView.scene.addAnchor(anchor)
                
        DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
            
            let frame = self.arView.session.currentFrame
            let envAnchor = AnchorEntity(world: (frame?.camera.transform)!)
            
            sphere.removeFromParent()
            envAnchor.addChild(sphere)

            self.arView.scene.addAnchor(envAnchor)
        }
    }
}

于 2020-11-19T22:07:10.413 回答