Unity trabalhando com prefabs

Prefabs são recursos especiais que permitem aos desenvolvedores armazenar GameObjects junto com seus componentes e outros dados em modelos configuráveis, que podem ser reutilizados posteriormente entre as cenas , e outros Projetos, ou instanciados por meio de um script, sem a necessidade de configurá-los novamente.

Casos em que Prefabs são úteis:

  • Recursos Ambientais (árvores, arbustos, rochas, etc.)
  • NPCs (personagens não jogáveis)
  • Projéteis
  • Instâncias do jogador
  • Qualquer objeto que precise ser reutilizado no jogo

Exemplo de Uso

Ao arrastar e soltar modelos diretamente para a cena, eles geralmente apresentam alguns problemas, como:

  • Faltando texturas
  • Escala errada
  • Rotação incorreta

Modelo de árvore com material padrão

Os problemas acima podem ser facilmente corrigidos na Cena (atribuindo o(s) material(is) correto(s), alterando a escala/rotação, etc.):

Modelo de Árvore com um Material Correto

No entanto, se você planeja usar o modelo repetidamente e/ou em várias cenas, repetir as etapas acima rapidamente se tornará uma tarefa tediosa, então, em vez disso, podemos salvar o modelo em um Prefab.

Como criar um pré-fabricado

  • Para criar um Prefab em Unity, simplesmente arraste e solte o objeto da visualização Cena para a visualização Projeto.

Unity 3D Criar um Pré-fabricado

  • Depois que o Prefab é criado, ele pode ser colocado em qualquer cena, criando uma cópia exata:

Visualização do projeto pré-fabricado do Unity

Editando Prefabs

A edição de Prefabs existentes é feita de 2 maneiras: modificando-os no editor de Prefab ou modificando-os na Cena.

Modificando no Editor Prefab

  • Selecione o Pré-fabricado na visualização do projeto e, em seguida, na visualização do Inspetor, clique em "Open Prefab"

  • O Prefab será aberto no editor, onde você poderá modificá-lo.

  • Ao terminar de modificar, clique na seta para trás na visualização de hierarquia para sair da edição e salvar as alterações.

Unity 3D Salvar alterações pré-fabricadas (Método 1)

Modificando na cena

  • Solte o Prefab na visualização Scene e edite-o lá.

  • No meu caso, adicionei outro Objeto à Hierarquia (observe o símbolo (+) próximo ao ícone)
  • Ao modificar prefabs na Cena, as alterações não são salvas automaticamente, em vez disso, você precisa selecionar manualmente o objeto raiz do Prefab e, na Visualização do Inspetor, clicar em "Overrides" e clicar "Apply All" para salvar as alterações, ou "Revert All" para reverter as alterações.

  • Algumas ações não são suportadas ao editar Prefab diretamente na cena, por exemplo, se você precisar reestruturar a hierarquia, será apresentada a mensagem "Cannot restructure Prefab instance" e com opções para "Open Prefab" ou "Cancel".

Para reestruturar a instância do Prefab, clique em 'Open Prefab' ou clique com o botão direito do mouse no prefab na visualização Hierarchy e clique em Prefab -> Unpack ou Prefab -> Unpack Completely.

Descompactar o Prefab removerá sua associação com o Prefab principal, tornando-o totalmente editável na Cena.

Para salvar o Prefab descompactado de volta, selecione a pasta onde o Prefab original está localizado e, em seguida, arraste e solte o objeto modificado da Visualização de hierarquia para esse Prefab.

Unity 3D Salvar alterações pré-fabricadas (Método 2)

Às vezes, se as mudanças forem muito drásticas, você receberá uma mensagem de confirmação.

Certifique-se de que você está modificando o Prefab correto e clique em "Replace Anyway" para finalizar a ação ou em "Não Substituir" para cancelar a ação.

Mensagem de confirmação de substituição de pré-fabricados do Unity 3D

O novo Prefab agora está salvo e pronto para uso.