Files
AppleHillsProduction/docs/airplane_abilities_unity_quickstart.md
2025-12-07 20:34:44 +01:00

212 lines
4.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Airplane Abilities - Unity Setup Quick Reference
**⚡ Fast setup guide for in-engine configuration**
---
## 🎯 7 Steps to Complete Setup
### **1⃣ CREATE ABILITIES** (3 assets)
```
Project Window → Right-Click → Create → AppleHills → Airplane → Abilities
```
| Asset | Name | Cooldown | Key Values |
|-------|------|----------|------------|
| Jet | `JetAbility` | 5s | Speed: 15, Angle: 0 |
| Bobbing | `BobbingAbility` | 3s | Jump: 10, Speed Reduction: 0.7 |
| Drop | `DropAbility` | 4s | Force: 20, Distance: 5 |
✅ Assign icon sprites to each
---
### **2⃣ CREATE AIRPLANE TYPES** (3 assets)
```
Project Window → Right-Click → Create → AppleHills → Airplane → Airplane Type
```
| Type | Name | Display Name | Ability |
|------|------|--------------|---------|
| Jet | `JetPlaneType` | "Jet Plane" | JetAbility |
| Bobbing | `BobbingPlaneType` | "Bobbing Plane" | BobbingAbility |
| Drop | `DropPlaneType` | "Drop Plane" | DropAbility |
✅ Assign prefabs and preview sprites
---
### **3⃣ BUILD SELECTION UI**
**Hierarchy Path**: `Canvas/AirplaneSelectionPanel`
```
AirplaneSelectionPanel (+ AirplaneSelectionUI component)
├── TitleText ("Choose Your Airplane")
├── JetPlaneButton
├── BobbingPlaneButton
├── DropPlaneButton
└── ConfirmButton
```
**Component Setup**:
- Assign 3 button references
- Assign 3 airplane type assets
- Selected Color: Yellow
- Normal Color: White
-**Start inactive**
---
### **4⃣ BUILD ABILITY BUTTON**
**Hierarchy Path**: `Canvas/GameplayUI/AbilityButton`
```
AbilityButton (+ AirplaneAbilityButton component)
├── Background (Image)
├── AbilityIcon (Image - dynamic)
├── CooldownFill (Image - Radial 360)
└── CooldownText (TextMeshPro - optional)
```
**Component Setup**:
- Assign Button, Icon, Fill, Text
- Ready: White, Cooldown: Gray, Active: Yellow
-**Start inactive**
---
### **5⃣ WIRE GAME MANAGER**
**GameObject**: `AirplaneGameManager`
**New References**:
- Selection UI → AirplaneSelectionPanel
- Ability Button → AbilityButton
✅ Verify existing references still assigned
---
### **6⃣ UPDATE SETTINGS**
**Asset**: `AirplaneSettings` (existing)
**New Field**:
- Default Airplane Type → Assign `JetPlaneType`
---
### **7⃣ TEST IN PLAY MODE**
**Quick Test**:
1. ▶️ Play
2. Selection UI appears
3. Click airplane → Confirm
4. Airplane spawns at slingshot
5. Launch and use ability
6. Button shows cooldown
**If all works, you're done!**
---
## 🎨 UI LAYOUT TIPS
### Selection Panel Position:
- Center screen
- Width: 80% of screen
- Background: Semi-transparent dark
- Buttons: Horizontal layout, equal spacing
### Ability Button Position:
- Bottom-right corner
- Size: 80x80 pixels
- Margin: 20px from edges
- Z-order: On top of everything
---
## ⚡ FAST TESTING
### Test Jet (Hold):
1. Launch airplane
2. **Click and hold** ability button
3. Airplane flies straight
4. **Release** → Stops
### Test Bobbing (Tap):
1. Launch airplane
2. **Tap** ability button
3. Airplane jumps up
4. Wait for cooldown
5. Tap again
### Test Drop (Tap):
1. Launch airplane
2. **Tap** ability button
3. Airplane drops down
4. Stops after distance
---
## 🐛 COMMON ISSUES
| Problem | Fix |
|---------|-----|
| Selection UI doesn't show | Check it's assigned in GameManager |
| Button doesn't appear | Check airplane has ability assigned |
| Hold doesn't work | Check InputManager exists in scene |
| Airplane doesn't spawn | Check TypeData has prefab assigned |
| Cooldown doesn't show | Check Fill image is assigned and Radial 360 |
---
## 📱 MOBILE TESTING
1. Build to device
2. Test touch hold (Jet ability)
3. Test tap (Bobbing/Drop)
4. Verify button size is thumb-friendly
5. Check cooldown is visible
---
## ✅ COMPLETE CHECKLIST
**Settings:**
- [ ] Configured all 3 airplane types in settings
- [ ] Assigned all prefabs and sprites
- [ ] Set default airplane type
**UI:**
- [ ] Built selection UI panel
- [ ] Built ability button UI
- [ ] Assigned button references (NO type assets!)
- [ ] Assigned GameManager references
**Testing:**
- [ ] Selection UI appears and works
- [ ] Tested Jet ability (hold)
- [ ] Tested Bobbing ability (tap)
- [ ] Tested Drop ability (tap)
- [ ] All cooldowns work
- [ ] No console errors
**When all checked → Ship it! 🚀**
---
## 🎉 ADVANTAGES
**NO ScriptableObject assets to create!**
**Everything in one settings file**
**Faster setup** (3 steps vs 7)
**Easier to maintain**
**Collapsible Inspector sections**
**Runtime ability creation from config**