Files
breakpilot-lehrer/breakpilot-drive/PREFAB_CONFIG.md
Benjamin Boenisch 5a31f52310 Initial commit: breakpilot-lehrer - Lehrer KI Platform
Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website,
Klausur-Service, School-Service, Voice-Service, Geo-Service,
BreakPilot Drive, Agent-Core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:26 +01:00

378 lines
7.7 KiB
Markdown

# Breakpilot Drive - Prefab Konfiguration
Diese Anleitung beschreibt, wie die Prefabs fuer das Spiel konfiguriert werden.
---
## 1. Spieler-Auto (Player)
### Prefab erstellen
1. Aus Kenney Car Kit ein Auto waehlen
2. In die Szene ziehen
3. Umbenennen zu "PlayerCar"
### Komponenten
| Komponente | Einstellungen |
|------------|---------------|
| **Transform** | Position: (0, 0, 0), Scale: (1, 1, 1) |
| **Rigidbody** | Use Gravity: false, Is Kinematic: true |
| **Box Collider** | Is Trigger: false, Size an Auto anpassen |
| **PlayerController** | Lane Distance: 3, Lane Switch Speed: 10 |
### Inspector-Einstellungen (PlayerController)
```
Bewegung:
Lane Distance: 3
Lane Switch Speed: 10
Forward Speed: 10
Spuren:
Current Lane: 1 (Mitte)
Touch-Steuerung:
Swipe Threshold: 50
Effekte:
Crash Effect: (ParticleSystem zuweisen)
Collect Effect: (ParticleSystem zuweisen)
```
### Tag
- Tag: **Player**
### Speichern
- Aus Hierarchy in `Assets/Prefabs/Player/` ziehen
- Name: `PlayerCar.prefab`
---
## 2. Strecken-Segment (Track)
### Prefab erstellen
1. Leeres GameObject: "TrackSegment"
2. Boden erstellen:
- 3D Object → Plane
- Scale: (5, 1, 5) fuer 50m Laenge
- Material: Strassen-Textur
### Struktur
```
TrackSegment
├── Ground (Plane mit Strassen-Material)
├── LeftBorder (optional, Leitplanke)
├── RightBorder (optional, Leitplanke)
└── SpawnPoints (leeres GO fuer Hindernis-Positionen)
```
### Speichern
- Mehrere Varianten erstellen (gerade, Kurve, etc.)
- In `Assets/Prefabs/Track/` speichern
---
## 3. Hindernisse (Obstacles)
### Hindernis-Prefab erstellen
1. Aus Kenney Nature Kit: Stein, Baum, etc. waehlen
2. In Szene ziehen
3. Umbenennen (z.B. "Obstacle_Rock")
### Komponenten
| Komponente | Einstellungen |
|------------|---------------|
| **Box Collider** | Is Trigger: true, Size anpassen |
### Tag
- Tag: **Obstacle**
### Prefab-Varianten
| Name | Beschreibung | Groesse |
|------|--------------|---------|
| `Obstacle_Rock.prefab` | Kleiner Stein | 1 Spur |
| `Obstacle_Tree.prefab` | Umgefallener Baum | 2 Spuren |
| `Obstacle_Barrier.prefab` | Absperrung | 1-2 Spuren |
| `Obstacle_Cone.prefab` | Verkehrskegel | 1 Spur |
### Speichern
- In `Assets/Prefabs/Obstacles/` speichern
---
## 4. Sammelbare Items
### Coin-Prefab
1. 3D Object → Cylinder (oder Kenney Asset)
2. Scale: (0.5, 0.1, 0.5)
3. Material: Gold
| Komponente | Einstellungen |
|------------|---------------|
| **Sphere Collider** | Is Trigger: true, Radius: 0.5 |
| **Rotation Script** | (optional, fuer Dreh-Animation) |
- Tag: **Coin**
- Prefab: `Assets/Prefabs/Items/Coin.prefab`
### Star-Prefab
1. Star-Modell (oder Kenney Asset)
2. Groesser als Coin
| Komponente | Einstellungen |
|------------|---------------|
| **Sphere Collider** | Is Trigger: true, Radius: 0.7 |
- Tag: **Star**
- Prefab: `Assets/Prefabs/Items/Star.prefab`
### Shield-Prefab
1. Shield-Modell
2. Blauer Schimmer-Effekt
| Komponente | Einstellungen |
|------------|---------------|
| **Sphere Collider** | Is Trigger: true, Radius: 0.7 |
- Tag: **Shield**
- Prefab: `Assets/Prefabs/Items/Shield.prefab`
---
## 5. Quiz-Trigger (Visual Triggers)
### Bridge-Prefab
1. Aus Kenney Assets oder selbst erstellen
2. Muss ueber der Strasse sein (Y-Position erhoehen)
### Struktur
```
Bridge
├── BridgeModel (visuelles Modell)
└── TriggerZone (leeres GO mit Collider)
└── Box Collider (Is Trigger: true)
└── VisualTrigger.cs (Trigger Type: "bridge")
```
### Komponenten (TriggerZone)
| Komponente | Einstellungen |
|------------|---------------|
| **Box Collider** | Is Trigger: true, Size: (10, 5, 2) |
| **VisualTrigger** | Trigger Type: "bridge" |
- Tag: **QuizTrigger**
### Weitere Trigger
| Prefab | Trigger Type | Beschreibung |
|--------|--------------|--------------|
| `Bridge.prefab` | "bridge" | Bruecke ueber Strasse |
| `Tree.prefab` | "tree" | Grosser Baum am Rand |
| `House.prefab` | "house" | Haus am Rand |
| `Sign.prefab` | "sign" | Schild mit Bild |
### Speichern
- In `Assets/Prefabs/VisualTriggers/` speichern
---
## 6. Manager-Objekte
Diese werden nicht als Prefabs, sondern direkt in der Szene erstellt:
### GameManager
```
GameObject: GameManager
Scripts:
- GameManager.cs
Inspector:
Start Lives: 3
Pause Question Interval: 500
Game Over Panel: (UI Referenz)
Pause Panel: (UI Referenz)
```
### QuizManager
```
GameObject: QuizManager
Scripts:
- QuizManager.cs
Inspector:
Quick Quiz Panel: (UI Referenz)
Pause Quiz Panel: (UI Referenz)
Question Text: (TextMeshPro Referenz)
Answer Buttons: [Button0, Button1, Button2, Button3]
Timer Text: (TextMeshPro Referenz)
Timer Slider: (Slider Referenz)
Points Correct: 500
Points Wrong: -100
Pause Question Interval: 500
```
### TrackGenerator
```
GameObject: TrackGenerator
Scripts:
- TrackGenerator.cs
Inspector:
Track Segment Prefabs: [Segment1, Segment2, ...]
Start Segment Prefab: (Start-Segment)
Segment Length: 50
Visible Segments: 5
Despawn Distance: -20
Base Speed: 10
```
### ObstacleSpawner
```
GameObject: ObstacleSpawner
Scripts:
- ObstacleSpawner.cs
Inspector:
Obstacle Prefabs: [Rock, Tree, Barrier, ...]
Large Obstacle Prefabs: [LargeTree, ...]
Coin Prefab: (Coin.prefab)
Star Prefab: (Star.prefab)
Shield Prefab: (Shield.prefab)
Bridge Prefab: (Bridge.prefab)
Tree Prefab: (Tree.prefab)
House Prefab: (House.prefab)
Lane Distance: 3
Min Obstacle Spacing: 10
Max Obstacle Spacing: 30
Obstacle Chance: 0.6
Coin Chance: 0.3
Star Chance: 0.05
Shield Chance: 0.02
Quiz Trigger Chance: 0.1
```
### BreakpilotAPI
```
GameObject: BreakpilotAPI
Scripts:
- BreakpilotAPI.cs
Inspector:
Base URL: http://localhost:8000/api/game
Use Offline Cache: true
```
---
## 7. UI Canvas
### Canvas erstellen
1. Rechtsklick in Hierarchy → UI → Canvas
2. Canvas Scaler:
- UI Scale Mode: Scale With Screen Size
- Reference Resolution: 1920 x 1080
### UI Struktur
```
Canvas
├── GameHUD
│ ├── ScorePanel
│ │ ├── ScoreIcon
│ │ └── ScoreText (TextMeshPro)
│ ├── LivesPanel
│ │ ├── Heart1, Heart2, Heart3 (Images)
│ │ └── LivesText (TextMeshPro)
│ └── DistanceText (TextMeshPro)
├── QuickQuizPanel (anfangs deaktiviert)
│ ├── QuestionText (TextMeshPro)
│ ├── AnswerButtons
│ │ ├── Button1, Button2, Button3
│ ├── TimerSlider
│ └── TimerText
├── PauseQuizPanel (anfangs deaktiviert)
│ ├── Background (halbtransparent)
│ ├── QuestionPanel
│ │ ├── QuestionText
│ │ ├── Button1, Button2, Button3, Button4
│ │ └── HintText (optional)
├── GameOverPanel (anfangs deaktiviert)
│ ├── GameOverText
│ ├── FinalScoreText
│ ├── RestartButton
│ └── MainMenuButton
└── PausePanel (anfangs deaktiviert)
├── PauseText
├── ResumeButton
└── MainMenuButton
```
---
## 8. Checkliste
### Prefabs erstellt?
- [ ] PlayerCar.prefab
- [ ] TrackSegment.prefab (mindestens 1)
- [ ] Obstacle_Rock.prefab
- [ ] Coin.prefab
- [ ] Star.prefab
- [ ] Shield.prefab
- [ ] Bridge.prefab (Quiz-Trigger)
### Manager konfiguriert?
- [ ] GameManager - alle UI Referenzen gesetzt
- [ ] QuizManager - alle UI Referenzen gesetzt
- [ ] TrackGenerator - Prefabs zugewiesen
- [ ] ObstacleSpawner - Prefabs zugewiesen
- [ ] BreakpilotAPI - Base URL korrekt
### Tags erstellt?
- [ ] Player
- [ ] Obstacle
- [ ] Coin
- [ ] Star
- [ ] Shield
- [ ] QuizTrigger
### UI Canvas?
- [ ] Canvas Scaler konfiguriert
- [ ] GameHUD erstellt
- [ ] QuickQuizPanel erstellt
- [ ] PauseQuizPanel erstellt
- [ ] GameOverPanel erstellt