데이터 파이프라인 개선 및 포탈 로직 생성
csv import 시 자동으로 완전한 프리팹이 생성될 수 있도록 함.
This commit is contained in:
120
AUTOMATED_PREFAB_PIPELINE.md
Normal file
120
AUTOMATED_PREFAB_PIPELINE.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Automated Prefab Generation Pipeline
|
||||
|
||||
## Overview
|
||||
This system automates the creation of monster prefabs from CSV data. No manual prefab setup required!
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **CSV Data** → **ScriptableObject (SO)** → **Prefab** (automatically generated)
|
||||
2. Template prefabs define required components and defaults
|
||||
3. CSV importer creates complete prefabs with mesh, components, and SO references
|
||||
|
||||
## Setup Instructions
|
||||
|
||||
### Step 1: Create Template Prefab
|
||||
|
||||
1. In Unity, go to `Tools > Data > Create Monster Template`
|
||||
2. This creates `Assets/Data/Templates/MonsterTemplate.prefab`
|
||||
3. The template includes all required components:
|
||||
- NetworkObject
|
||||
- EnemyUnit
|
||||
- MonsterDataComponent (links to SO)
|
||||
- NavMeshAgent
|
||||
- EnemyAIController
|
||||
- CapsuleCollider
|
||||
- MeshFilter & MeshRenderer
|
||||
|
||||
4. **Customize the template if needed:**
|
||||
- Adjust default AI behavior
|
||||
- Set default collider size
|
||||
- Add visual effects
|
||||
- Configure NavMeshAgent settings
|
||||
|
||||
### Step 2: Update CSV with Mesh Path
|
||||
|
||||
Add `meshPath` column to your `Monster.csv`:
|
||||
|
||||
```csv
|
||||
id,name,memo,moveSpeed,maxHp,atkRange,atkDamage,atkIntervalSec,meshPath,cost,weight
|
||||
101,Grunt,Basic Monster,2.6,30,1,3,1.2,Assets/Models/Monsters/Monster101.fbx,1,1.0
|
||||
102,Fast,Fast/Weak,3.4,18,1,2,1,Assets/Models/Monsters/Monster102.fbx,2,0.5
|
||||
```
|
||||
|
||||
### Step 3: Import Data
|
||||
|
||||
1. In Unity, go to `Tools > Data > Import All CSV`
|
||||
2. The importer will:
|
||||
- Create/update SO files in `Assets/Data/ScriptableObjects/Monster/`
|
||||
- Create/update prefabs in `Assets/Prefabs/Monster/`
|
||||
- Apply mesh from `meshPath` column
|
||||
- Link SO reference to prefab's MonsterDataComponent
|
||||
|
||||
### Step 4: Use Prefabs
|
||||
|
||||
Your generated prefabs are ready to use! Example with EnemyPortal:
|
||||
- Open EnemyPortal prefab
|
||||
- Click "Load Monster Data" button
|
||||
- All monster prefabs are automatically loaded
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
Assets/
|
||||
├── Data/
|
||||
│ ├── ScriptableObjects/
|
||||
│ │ └── Monster/ # SO files (generated from CSV)
|
||||
│ └── Templates/ # Template prefabs (created once)
|
||||
│ └── MonsterTemplate.prefab
|
||||
├── Prefabs/
|
||||
│ └── Monster/ # Generated monster prefabs
|
||||
│ ├── Monster101.prefab
|
||||
│ ├── Monster102.prefab
|
||||
│ └── ...
|
||||
└── GameData/
|
||||
└── Monster.csv # Source data (editable)
|
||||
```
|
||||
|
||||
## Benefits
|
||||
|
||||
- ✅ **One source of truth**: Edit CSV, everything updates
|
||||
- ✅ **No manual setup**: Prefabs generated automatically
|
||||
- ✅ **Designer-friendly**: Templates visual, CSV simple
|
||||
- ✅ **Error-proof**: All components guaranteed to exist
|
||||
- ✅ **Easy customization**: Edit template once, applies to all
|
||||
|
||||
## Customization
|
||||
|
||||
### Adding New Components
|
||||
1. Open `MonsterTemplate.prefab`
|
||||
2. Add the component
|
||||
3. Configure defaults
|
||||
4. Save template
|
||||
5. All future imports will include it
|
||||
|
||||
### Modifying Existing Monsters
|
||||
- Edit the prefab directly (changes persist on next import)
|
||||
- OR modify CSV and re-import (will update SO link and mesh)
|
||||
|
||||
### Creating Other Data Types
|
||||
Use the same pattern:
|
||||
1. Create template: `Tools > Data > Create Tower Template`
|
||||
2. Add meshPath column to Tower.csv
|
||||
3. Import: `Tools > Data > Import All CSV`
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Prefab not created?**
|
||||
- Check if template exists in `Assets/Data/Templates/`
|
||||
- Verify `meshPath` column in CSV
|
||||
|
||||
**Mesh not showing?**
|
||||
- Verify `meshPath` is correct in CSV
|
||||
- Check that mesh file exists at specified path
|
||||
|
||||
**Components not configured?**
|
||||
- Edit template prefab
|
||||
- Re-import CSV to apply template changes to new prefabs
|
||||
|
||||
**Want to keep manual prefab edits?**
|
||||
- Prefabs created by importer are NOT overwritten
|
||||
- Edits persist on next import (SO and mesh only update)
|
||||
Reference in New Issue
Block a user