swiftUI,realitykit识别到设置好的图像加载出整个Experience.rcproject

swiftUI,realitykit识别到设置好的图像加载出整个Experience.rcproject,第1张

swiftUI,realitykit识别到图像加载整个AR的Scene。
// Load the “ArrowScene” scene from the “Experience” Reality File
说明:
1.ArrowScene为Experience中场景的名称。
2.Experience为Experience.rcproject文件。
3.ReferenceImagesLibrary是在Assets.xcassets中建立的group。识别的时候会遍历里面的图片。

func makeUIView(context: Context) -> ARView {

        arView = ARView(frame: .zero)
        
        
        //        二维图片检测//config指向
        let config = ARImageTrackingConfiguration()
        guard let trackedImagesLib = ARReferenceImage.referenceImages(inGroupNamed: "ReferenceImagesLibrary", bundle: Bundle.main) else {
            fatalError("无法加载参考图像库")
        }
        config.trackingImages = trackedImagesLib//追踪图片源
        config.maximumNumberOfTrackedImages = 1//设置检测的最大数量的图片
        arView.session.run(config, options:[ ])

        

//        1.语句将ARSession代理设置为ARView
        arView.session.delegate = arView
        return arView        
    }
    public func session(_ session: ARSession, didAdd anchors: [ARAnchor]){
        guard let imageAnchor = anchors[0] as? ARImageAnchor else {
            return
        } 
        DispatchQueue.main.async {
            do {
                // Load the "ArrowScene" scene from the "Experience" Reality File
                let myModelEntity =  try Experience.loadArrowScene()
                
                let imageAnchorEntity = AnchorEntity(anchor:imageAnchor)
                imageAnchorEntity.addChild(myModelEntity)
                self.scene.addAnchor(imageAnchorEntity)
                //drummerEntity.playAnimation(drummerEntity.availableAnimations[0].repeat())
            } catch {
                print("无法加载模型")
            }
        }
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存