Prefabs y gestión de assets

Aprende a reutilizar objetos con Prefabs y a organizar assets para mantener proyectos escalables y fáciles de iterar.

Un Prefab es una plantilla reutilizable de GameObject con componentes y configuración predefinida.

Cambiar el Prefab base permite propagar mejoras a múltiples instancias sin editar objeto por objeto.

Una estructura ordenada de assets reduce errores de referencias rotas y acelera el trabajo en equipo.

Las variantes de Prefab permiten reutilizar una base común adaptando diferencias por enemigo, ítem o escena.

  • Sin Prefabs, cualquier cambio repetido se vuelve caro y propenso a fallos.
  • Cuando duplicas GameObjects manualmente en escena, cada copia puede divergir y generar inconsistencias difíciles de rastrear.
  • Con Prefabs defines una fuente de verdad: malla, colisionador, scripts y parámetros básicos viven en el asset original.
  • Si mañana cambias una configuración clave (por ejemplo, daño o hitbox), actualizas el Prefab base y mantienes coherencia global.
  • Reutilización rápida de elementos de juego.

Por qué usar Prefabs

Sin Prefabs, cualquier cambio repetido se vuelve caro y propenso a fallos.

Cuando duplicas GameObjects manualmente en escena, cada copia puede divergir y generar inconsistencias difíciles de rastrear.

Con Prefabs defines una fuente de verdad: malla, colisionador, scripts y parámetros básicos viven en el asset original.

Si mañana cambias una configuración clave (por ejemplo, daño o hitbox), actualizas el Prefab base y mantienes coherencia global.

  • Reutilización rápida de elementos de juego.
  • Mantenimiento centralizado de configuración.
  • Escalabilidad al crecer número de instancias.

Organización de assets que sí escala

La arquitectura de carpetas es una decisión técnica, no solo estética.

Define convenciones claras de carpetas: `Prefabs`, `Materials`, `Scripts`, `Audio`, `Scenes`, `UI` y variantes específicas por sistema.

Usa nombres descriptivos y consistentes (`Enemy_Goblin_Base`, `Enemy_Goblin_Elite`) para facilitar búsqueda y evitar errores en referencias.

Evita mover assets sin control cuando ya están referenciados por escenas o scripts; planifica cambios estructurales con commits pequeños.

Instanciación en runtime

Los Prefabs no solo se arrastran a escena; también se generan por código.

Puedes instanciar Prefabs dinámicamente para spawners, balas, enemigos o pickups según estado del juego.

Esto desacopla diseño de nivel y lógica de aparición, permitiendo sistemas más flexibles y reutilizables.

Si el volumen de instancias es alto, combina este enfoque con Object Pooling en lecciones de optimización.

Unity
07

Prefabs y gestión de assets

Aprende a reutilizar objetos con Prefabs y a organizar assets para mantener proyectos escalables y fáciles de iterar.

Código del tema: GameObject + Component = comportamiento

📘 Teoría

Por qué usar Prefabs

Sin Prefabs, cualquier cambio repetido se vuelve caro y propenso a fallos.

Cuando duplicas GameObjects manualmente en escena, cada copia puede divergir y generar inconsistencias difíciles de rastrear.

Con Prefabs defines una fuente de verdad: malla, colisionador, scripts y parámetros básicos viven en el asset original.

Si mañana cambias una configuración clave (por ejemplo, daño o hitbox), actualizas el Prefab base y mantienes coherencia global.

  • Reutilización rápida de elementos de juego.
  • Mantenimiento centralizado de configuración.
  • Escalabilidad al crecer número de instancias.

Organización de assets que sí escala

La arquitectura de carpetas es una decisión técnica, no solo estética.

1

Define convenciones claras de carpetas: `Prefabs`, `Materials`, `Scripts`, `Audio`, `Scenes`, `UI` y variantes específicas por sistema.

2

Usa nombres descriptivos y consistentes (`Enemy_Goblin_Base`, `Enemy_Goblin_Elite`) para facilitar búsqueda y evitar errores en referencias.

3

Evita mover assets sin control cuando ya están referenciados por escenas o scripts; planifica cambios estructurales con commits pequeños.

Ejemplo de estructura mínima de proyecto
Assets/
  Scenes/
  Scripts/
  Prefabs/
    Enemies/
    Props/
  Materials/
  Audio/
  UI/

Instanciación en runtime

Los Prefabs no solo se arrastran a escena; también se generan por código.

1

Puedes instanciar Prefabs dinámicamente para spawners, balas, enemigos o pickups según estado del juego.

2

Esto desacopla diseño de nivel y lógica de aparición, permitiendo sistemas más flexibles y reutilizables.

3

Si el volumen de instancias es alto, combina este enfoque con Object Pooling en lecciones de optimización.

Instanciar un Prefab desde script
using UnityEngine;

public class Spawner : MonoBehaviour
{
    public GameObject enemyPrefab;
    public Transform spawnPoint;

    public void Spawn()
    {
        Instantiate(enemyPrefab, spawnPoint.position, spawnPoint.rotation);
    }
}

🧪 Aprende probando

Ejemplo Ejemplo guiado Plantea un enemigo base y enumera qué partes deben ir en el Prefab y cuáles en scripts de comportamiento.

🏁 Retos

Reto Reto práctico Diseña dos variantes de un mismo Prefab (normal y elite) manteniendo una base compartida.

🧰 Recursos

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .