3.6 KiB
3.6 KiB
Automated Prefab Generation Pipeline
Overview
This system automates the creation of monster prefabs from CSV data. No manual prefab setup required!
How It Works
- CSV Data → ScriptableObject (SO) → Prefab (automatically generated)
- Template prefabs define required components and defaults
- CSV importer creates complete prefabs with mesh, components, and SO references
Setup Instructions
Step 1: Create Template Prefab
-
In Unity, go to
Tools > Data > Create Monster Template -
This creates
Assets/Data/Templates/MonsterTemplate.prefab -
The template includes all required components:
- NetworkObject
- EnemyUnit
- MonsterDataComponent (links to SO)
- NavMeshAgent
- EnemyAIController
- CapsuleCollider
- MeshFilter & MeshRenderer
-
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:
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
- In Unity, go to
Tools > Data > Import All CSV - The importer will:
- Create/update SO files in
Assets/Data/ScriptableObjects/Monster/ - Create/update prefabs in
Assets/Prefabs/Monster/ - Apply mesh from
meshPathcolumn - Link SO reference to prefab's MonsterDataComponent
- Create/update SO files in
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
- Open
MonsterTemplate.prefab - Add the component
- Configure defaults
- Save template
- 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:
- Create template:
Tools > Data > Create Tower Template - Add meshPath column to Tower.csv
- Import:
Tools > Data > Import All CSV
Troubleshooting
Prefab not created?
- Check if template exists in
Assets/Data/Templates/ - Verify
meshPathcolumn in CSV
Mesh not showing?
- Verify
meshPathis 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)