ARKit增加一个盒子
体验一下ARKit的能力,在室内随便加点小球,然后在AR中显示出来。
效果如下图:
以下为操作流程。
新建项目
新建一个空项目,项目一定要选择 Augmented Reality App,能够省很多的事。
之后的 content technology 选择 realitykit。
其他代码如下
import SwiftUI
import RealityKit
import ARKitstruct ContentView : View {@State var modelNames: String = ""@State var count: Int = 0var body: some View {ZStack {ARViewContainer(modelNames: $modelNames)HStack {Button {count = count + 1modelNames = "\(count)"print("call click")} label: {Text("增加 \(count)").frame(width: 120, height: 40).background(Color.black.opacity(0.4)).cornerRadius(10)}}}}
}struct ARViewContainer: UIViewRepresentable {@Binding var modelNames: Stringfunc makeUIView(context: Context) -> ARView {let arView = ARView(frame: .zero)let configuration = ARWorldTrackingConfiguration()configuration.planeDetection = [.horizontal, .vertical]arView.session.run(configuration)return arView}func updateUIView(_ uiView: ARView, context: Context) {print("update view")let mesh = MeshResource.generateBox(size: 0.1, cornerRadius: 0.005)let material = SimpleMaterial(color: .gray, roughness: 0.15, isMetallic: true)let model = ModelEntity(mesh: mesh, materials: [material])let anchor = AnchorEntity(.plane(.horizontal, classification: .any, minimumBounds: SIMD2<Float>(0.2, 0.2)))anchor.children.append(model)uiView.scene.anchors.append(anchor)}
}#Preview {ContentView()
}