ARKit - 如何将3D对象附加到屏幕上?

时间:2017-10-23 09:33:18

标签: c# unity3d augmented-reality arkit

如何将3D对象连接到手机上,这样我就可以四处移动,然后点击屏幕后,3D对象应该保留在3D空间的当前位置?

1 个答案:

答案 0 :(得分:0)

Native RealityKit方法

@Rumata,这是stick-and-drop方法论的代码。应用启动后,球形对象将在5秒钟内自动掉落。您可以使用实现“手势手势”的相同方法(通过情节提要或通过编程来实现)。

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)
        }
    }
}