Files
Northbound/AUTOMATED_PREFAB_PIPELINE.md
dal4segno 2593b6dd37 데이터 파이프라인 개선 및 포탈 로직 생성
csv import 시 자동으로 완전한 프리팹이 생성될 수 있도록 함.
2026-02-01 00:29:22 +09:00

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

  1. CSV DataScriptableObject (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:

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)