Skip to main content

Interaktive 3D-Sphäre in RealityView

Beschreibung

Diese View zeigt eine 3D-Sphäre in einer RealityKit-Szene innerhalb von SwiftUI. Die Sphäre erhält Kollisionseigenschaften, reagiert auf Eingaben und löst bei einem Tap-Gestenereignis eine Aktion aus.

🔍 Zweck

  • Darstellung von 3D-Objekten in einer visionOS-App
  • Testen von Interaktionen mit RealityKit-Entities
  • Aufbau von Prototypen für immersive Erlebnisse
  • Demonstration von Gestensteuerung in 3D-Szenen
  • Grundlage für interaktive AR/VR-Anwendungen

🖥️ Betriebssystem

visionOS

📄 Codebeispiel

import SwiftUI
import RealityKit
import RealityKitContent

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

struct ContentView: View {
    var body: some View {
        RealityView { content in
            // Create a sphere entity with a small radius
            let sphere = ModelEntity(mesh: .generateSphere(radius: 0.05))
            
            // Enable collision detection so it can respond to interactions
            sphere.generateCollisionShapes(recursive: true)
            
            // Add input target so taps or gestures can be recognized
            sphere.components[InputTargetComponent.self] = .init()
            
            // Add the sphere to the scene content
            content.add(sphere)
        }
        // Handle tap gesture on the 3D entity
        .gesture(TapGesture().onEnded {
            print("Entity tapped")
        })
    }
}

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