Prefab y Prefab variant
Los Prefabs en Unity son como una plantilla a partir de la cual puedes crear nuevas instancias de un objeto en la escena.
Por otro lado, los Prefab variant son útiles cuando quieres tener distintas versiones de un mismo Prefab pero con ligeros cambios, como por ejemplo con distintos valores en un componente.
| Prefab | Prefab Variant | |
|---|---|---|
| Permite almacenar un game object con sus componentes y propiedades. | Sí | Sí |
| permite reutilizar un objeto con una configuración específica varias veces en el proyecto | Sí | Sí |
| Refleja los cambios hechos al prefab en todas sus instancias | Sí | Sí |
| Hereda cambios del prefab a partir del cual fue creado | No | Sí |
| Necesita ser creado a partir de otro prefab. | No | Sí |
| Su objetivo es ser un variación de un prefab base | No | Sí |
Para crear un Prefab posiciona el mouse en la carpeta donde deseas crear tu prefab luego click Derecho > Create > prefab.

Modificar un prefab
Los Prefabs que visualizamos en nuestra escena de Unity son copias de un GameObject. Cuando nosotros modificamos una de estas copias, si queremos, podemos reflejar los cambios que hagamos en el resto de instancias (copias).
Para modificar un Prefab y reflejar los cambios, en la ventana Project posiciona el mouse sobre el Prefab que deseas modificar y da doble click.
Al hacer esto, en la ventana Hierarchy únicamente se mostrarán los componentes que conforman tu Prefab y todas las modificaciones que hagas se verán reflejadas automáticamente en el Prefab y sus variantes.
Modificar un Prefab sin reflejar cambios
Puedes modificar un Prefab desde la ventana Hierarchy de la misma forma que lo harías con cualquier otro asset y los cambios no se verían reflejados mientras no hagas doble click sobre el prefab.
Modificar un Prefab de esta forma es muy útil pues los cambios solo se efectuaran en esa instancia concreta del Prefab, manteniendo el resto de instancias sin cambios, además podrás revertir los cambios de tu Prefab en cualquier momento, seleccionando tu prefab en la ventana Hierarchy y luego seleccionando la opción Override>Revert All desde la ventana del inspector.
Por otro lado, si deseas aplicar los cambios de un prefab al resto de instancias, puedes usar la opción Override>Apply All.

Para crear un Prefab Variant, da click derecho sobre un Prefab > Create > Prefab Variant. Esto crea una variante del Prefab seleccionado.
Un Prefab Variant hereda las propiedades del prefab a partir del cual fue creado. Las modificaciones que hagas de un prefab se verán reflejadas en sus prefab variants, sin embargo las modificaciones que hagas dentro de un prefab variant solo se verán reflejadas en ese prefab variant en concreto y sus instacias.
