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

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("无法加载模型")
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值