1

ARView 拡張機能から globalDataTransfer クラスを更新し、変更を ArView に反映しようとしています。以下はglobalDataTransfer関数です

 class globalDataTransfer: ObservableObject{
    
    @Published var val: String = "No Value"
    
    required init  (any : String){
        self.val = any
    }
    
    func check() -> String{
        return(self.val)
    }
}

私のARViewContainer

struct ARViewContainer: UIViewRepresentable  {
    
    func makeUIView(context: UIViewRepresentableContext<ARViewContainer>) -> ARView {
        let arView = ARView(frame: .zero,cameraMode: .ar,automaticallyConfigureSession: true)
        arView.setupForBodyTracking()
        arView.scene.addAnchor(bodySkeletonAnchor)
        return(arView)
    }
    
    func updateUIView(_ uiView: ARView, context: Context) {
    }
    
    typealias UIViewType = ARView
}

私のARView拡張機能は

extension ARView: ARSessionDelegate{
    
    func setupForBodyTracking(){
        let config = ARBodyTrackingConfiguration()
        self.session.run(config)
        self.session.delegate = self
    }
    
    public func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
        
        for anchor in anchors{
            if let bodyAnchor = anchor as? ARBodyAnchor{
                if let skeleton = bodySkeleton{
                    skeleton.update(with: bodyAnchor)
                    var 
                }
                else{
                    let skeleton = BodySkeleton(for: bodyAnchor)
                    bodySkeleton = skeleton
                    bodySkeletonAnchor.addChild(skeleton)
                }
                var Val:String = calcAngle(anchor: bodyAnchor) //Function that returns Joint Angles and lengths
            }
        }
    }
}

コンテンツ ビュー:



struct ArView: View {
    
    @ObservedObject var forGlobalValue: globalDataTransfer = globalDataTransfer(any: "No Value")

    var body: some View{
        ZStack{
            ARViewContainer()
            VStack{
                Text(forGlobalValue.val)
                Text("  This is \(test(any: forGlobalValue))")
            }
        }
    }
}

この Observable オブジェクトを ARView に渡す方法を教えてください。または、ARView 拡張機能から Val 変数を取得し、View Text で定期的に更新する方法はありますか。

4

0 に答える 0