Machineboy空
RealityKit 입문 - ARCouchingView 더하기 본문
https://developer.apple.com/documentation/arkit/arcoachingoverlayview
ARCoachingOverlayView | Apple Developer Documentation
A view that displays standardized onboarding instructions to direct users toward a specific goal.
developer.apple.com
import SwiftUI
import RealityKit
import ARKit
struct ContentView : View {
var body: some View {
return ARViewContainer().edgesIgnoringSafeArea(.all)
}
}
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = ARView(frame: .zero)
let anchor = AnchorEntity(plane: .horizontal)
anchor.name = "Plane Anchor"
arView.scene.addAnchor(anchor)
arView.addCoaching()
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal] // 수평 평면 탐지 활성화
arView.session.run(config)
return arView
}
func updateUIView(_ uiView: ARView, context: Context) {}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
extension ARView: ARCoachingOverlayViewDelegate {
func addCoaching() {
let coachingOverlay = ARCoachingOverlayView()
coachingOverlay.autoresizingMask = [.flexibleWidth, .flexibleHeight]
coachingOverlay.goal = .horizontalPlane
coachingOverlay.session = self.session
//oachingOverlay.delegate = self
self.addSubview(coachingOverlay)
}
private func addVirtualObjects() {
let box = ModelEntity(mesh: MeshResource.generateBox(size: 0.3), materials: [SimpleMaterial(color: .green, isMetallic: true)])
guard let anchor = self.scene.anchors.first(where: { $0.name == "Plane Anchor" }) else {
return
}
anchor.addChild(box)
}
public func coachingOverlayViewDidDeactivate(_ coachingOverlayView: ARCoachingOverlayView) {
addVirtualObjects()
}
}
CouchingView라는 게 환경이 명확히 인지되지 않을 때 뜨는 안내화면인듯하다.
iphone12로 테스트할 땐 코칭뷰가 자주뜨는데, iphone 15로 테스트하면 정말 근접으로 초점을 잃을 수준이 아니고서야 코칭뷰가 거의 뜨지 않음! 기기 성능이 이렇게 차이가난다
'언어 > iOS' 카테고리의 다른 글
RealityKit 입문 - 측정앱 만들기 (0) | 2024.10.15 |
---|---|
RealityKit 입문 - Physics (1) | 2024.10.14 |
RealityKit 입문 - Material 종류들 (Occulusion, Unlit and Video Materials) (4) | 2024.10.13 |
RealityKit 입문 - Reality Composer (0) | 2024.10.13 |
RealityKit 입문 - Models .usdz (3) | 2024.10.12 |