Skip to main content

RealityView mit interaktivem Overlay-Button

Beschreibung

Diese View zeigt eine einfache 3D-Box in einer RealityKit-Szene und kombiniert sie mit einem SwiftUI-Overlay. Ein Button im Vordergrund ermöglicht die Interaktion, ohne die Darstellung der 3D-Szene zu stören.

🔍 Zweck

  • Kombination von 3D-Inhalten mit klassischen UI-Elementen
  • Erstellung interaktiver AR/VR-Szenen mit Overlay-Steuerung
  • Prototypen für Immersive Experiences in visionOS
  • Einbindung von Buttons für Aktionen wie Interaktion oder Navigation
  • Test von RealityKit-Inhalten mit SwiftUI-Layouts

🖥️ Betriebssystem

visionOS

📄 Codebeispiel

import SwiftUI
import RealityKit
import RealityKitContent

@main
struct RealityOverlayApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

struct ContentView: View {
    var body: some View {
        ZStack {
            // RealityKit scene with a simple 3D box
            RealityView { content in
                let box = ModelEntity(mesh: .generateBox(size: 0.1))
                // Position the box slightly in front of the user
                box.position = [0, 0, -0.5]
                content.add(box)
            }

            // Overlay UI with a button for interaction
            VStack {
                Spacer()
                HStack {
                    Spacer()
                    Button(action: {
                        // Placeholder for interaction logic
                        print("AR Button Pressed")
                    }) {
                        Label("Interact", systemImage: "hand.tap")
                            .padding()
                            .background(.ultraThinMaterial)
                            .clipShape(Capsule())
                    }
                    .padding()
                }
            }
        }
        // Extend scene to cover entire window
        .edgesIgnoringSafeArea(.all)
    }
}

// Modern Swift 5.10+ preview syntax
#Preview {
    ContentView()
}