Unidad trabajando con prefabricados

Los Prefabs son activos especiales que permiten a los desarrolladores almacenar GameObjects junto con sus Componentes y otros datos en plantillas configurables, que luego se pueden reutilizar entre las Escenas y otros Proyectos, o crear instancias a través de un script, sin necesidad de configurarlos de nuevo.

Casos donde Prefabs son útiles:

  • Activos ambientales (árboles, arbustos, rocas, etc.)
  • NPC (personajes no jugadores)
  • proyectiles
  • Instancias de jugador
  • Cualquier objeto que necesite ser reutilizado en el juego.

Ejemplo de uso

Al arrastrar y soltar modelos directamente a la escena, a menudo se generarán con algunos problemas, como:

  • Texturas perdidas
  • Escala incorrecta
  • Rotación incorrecta

Modelo de árbol con material predeterminado

Los problemas anteriores se pueden solucionar fácilmente en la escena (asignando los materiales correctos, cambiando la escala/rotación, etc.):

Modelo de árbol con un material correcto

Sin embargo, si planea usar el modelo repetidamente y/o en varias escenas, repetir los pasos anteriores se convertirá rápidamente en una tarea tediosa, por lo que podemos guardar el modelo en un Prefab.

Cómo crear un prefabricado

  • Para crear un prefabricado en Unity, simplemente arrastre y suelte el objeto desde la vista de escena a la vista de proyecto.

Unity 3D Crea una casa prefabricada

  • Después de crear el Prefab, se puede colocar en cualquier Escena, creando una copia exacta:

Vista de proyecto prefabricado de Unity

Edición de prefabricados

La edición de Prefabs existentes se realiza de 2 formas: modificándolos en el editor de Prefab o modificándolos en la Escena.

Modificar en The Prefab Editor

  • Seleccione el Prefab en la vista Proyecto, luego en la Vista Inspector haga clic en "Open Prefab"

  • El Prefab se abrirá en el editor, donde podrá modificarlo.

  • Cuando haya terminado de modificar, haga clic en la flecha hacia atrás en la vista de jerarquía para salir de la edición y guardar los cambios.

Unity 3D Guardar cambios prefabricados (Método 1)

Modificando en la escena

  • Coloque el prefabricado en la vista de escena y luego edítelo allí.

  • En mi caso, he agregado otro Objeto a la Jerarquía (Observe el símbolo (+) cerca del ícono)
  • Al modificar prefabricados en la escena, los cambios no se guardan automáticamente, sino que debe seleccionar manualmente el objeto raíz del prefabricado y, en la Vista de inspección, hacer clic en "Overrides" y luego en "Apply All" para guardar los cambios, o "Revert All" para revertir los cambios.

  • Algunas acciones no son compatibles cuando se edita Prefab directamente en la escena, por ejemplo, si necesita reestructurar la jerarquía, se le presentará el mensaje "Cannot restructure Prefab instance" y con opciones para "Open Prefab" o "Cancel".

Para reestructurar la instancia de Prefab, haga clic en 'Open Prefab' o haga clic con el botón derecho en el prefab en la vista de Jerarquía y luego haga clic en Prefab -> Desempaquetar o Prefab -> Desempaquetar completamente.

Desempaquetar Prefab eliminará su asociación con el Prefab principal, haciéndolo completamente editable en la escena.

Para volver a guardar el Prefab desempaquetado, seleccione la carpeta donde se encuentra el Prefab original, luego arrastre y suelte el objeto modificado desde la Vista de jerarquía en ese Prefab.

Unity 3D Guardar cambios prefabricados (Método 2)

A veces, si los cambios son demasiado drásticos, se le presentará un mensaje de confirmación.

Asegúrese de verificar que está modificando el Prefab correcto y luego haga clic en "Replace Anyway" para finalizar la acción o en "No reemplazar" para cancelar la acción.

Mensaje de confirmación de reemplazo de prefabricados de Unity 3D

El nuevo Prefab ahora está guardado y listo para usar.

Artículos sugeridos
Cómo pintar árboles en el terreno en Unity
Uso del paquete de activos en Unity
Cómo hacer un juego inspirado en FNAF en Unity
Generación del mundo procesal en unidad
Consejos de Twitter para la unidad
Cómo importar animaciones a Unity
Elegir el Skybox adecuado para su entorno en Unity