Novos fluxos de trabalho de Prefab

Uma das principais adições requisitadas ao Unity é a capacidade de aninhar Prefabs. Mas sabemos que muitos de vocês precisam de muito mais alterações nos fluxos de trabalho de Prefab do que isso. Portanto, estamos melhorando todo o sistema com foco em reutilização, controle e segurança. Essa é a primeira em uma série de publicações do blog que explicam as mudanças que estão por vir. Se você ainda não fez isso durante a palestra principal da Unite Berlin ontem, obtenha a visualização do Unity build com o novo sistema Prefab aqui.
Vamos começar resumindo os fundamentos do que são Prefabs no Unity. Fundamentalmente, um asset Prefab é igual a um modelo de um GameObject e seus filhos. Você pode usar instâncias de um asset Prefab para criar várias cópias de um GameObject em suas Cenas. Se o asset Prefab for alterado, todas as instâncias de Prefab serão atualizadas automaticamente de acordo.
Falei com uma ampla gama de estúdios independentes e AAA para mergulhar no modo como vocês trabalham com Prefabs no momento. Um problema encontrado foi que, quando você queria editar um asset Prefab, precisava arrastar para uma Cena aberta na hierarquia para modificá-la, aplicar as alterações e, depois, lembre-se de excluí-la novamente. Outro grande problema foi o botão Apply para instâncias de Prefab no Inspector. Com esse botão, você poderia acidentalmente aplicar alterações ao Asset Prefab que não tinha uma boa maneira de obter uma visão geral.
Para resolver esses problemas, nós apresentamos uma gama de novos recursos. Nós implementamos um back-end de Prefab compatível com o back-end, que agora oferece suporte a aninagem e sucessão. Melhoramos a visualização de substituições de propriedade e objeto para instâncias Prefab e adicionamos a capacidade de aplicar substituições em vários níveis de granularidade: por propriedade, por componente/GameObject ou, como antes, toda a instância Prefab. Por fim, adicionamos o Modo Prefab para poder editar um asset Prefab de maneira isolada.
O Prefab Mode representa uma mudança fundamental ao trabalhar com Prefabs. Ele permite que você decida se deseja fazer alterações em uma instância Prefab ou fazer alterações diretamente em um asset Prefab.
O Prefab Mode oferece uma sessão de edição de assets Prefab mais controlada pois você pode realizar todas as alterações no Asset Prefab, incluindo alterações estruturais, sem receber diálogos solicitando que você interrompa a conexão com o Prefab. Com o Prefab Mode, você não precisa mais fazer alterações temporárias em uma instância Prefab com o único propósito de aplicar essas alterações ao asset posteriormente (com o possível efeito secundário de aplicar outras substituições anteriores que deveriam ser mantidas como substituições). Portanto, recomendamos que você use o modo Prefab para alterações no asset Prefab e só faça substituições em instâncias de Prefab quando necessário. Observe que também melhoramos significativamente o fluxo de trabalho de aplicação. Mais informações sobre esse fluxo de trabalho em uma próxima publicação de blog!
O Prefab Mode assume a hierarquia e a Scene View para mostrar o asset Prefab de maneira isolada. Você pode reconhecer esse modo pelos novos cabeçalhos na hierarquia e na Scene View. Observe também que a cor de fundo do modo Prefab pode ser personalizada nas Preferências.

Você pode entrar no Modo Prefab fazendo um dos seguintes:
- Clique duas vezes no Prefab na janela Project.
- Clique no novo botão de seta na janela Hierarchy ao lado do GameObject raiz da instância Prefab.
- Clique no botão Abrir no Inspector para obter o GameObject raiz da instância Prefab Asset ou Prefab.
Para habilitar aninhamento de Prefab, tivemos que fazer alterações técnicas no back-end Prefab. Então, do ponto de vista técnico, os Prefabs agora são assets importados. Isso significa que não será mais possível editar GameObjects Prefab na janela Project. Em comparação com o antigo fluxo de trabalho de edição diretamente na janela Project, o Modo Prefab permite que você edite objetos em qualquer profundidade e veja o que está fazendo na visualização de cena também.
Outra consequência de fornecer aninagem de Prefab é que não é mais possível desconectar uma instância de Prefab para fazer alterações estruturais nessa instância. Isso inclui excluir GameObjects, reparar GameObjects ou substituir um Transform por um RectTransform e vice-versa. Agora você pode fazer tudo isso no Modo Prefab. Alternativamente, agora você pode desembalar uma instância Prefab se quiser remover totalmente o link para seu asset Prefab e, assim, reestruturar os GameObjects simples resultantes conforme quiser.
Introduzimos o termo “estágio” no Editor como um conceito para um conjunto de GameObjects isolados de outros GameObjects. Quando estiver no Modo Prefab, os pedaços de pão na parte superior da visualização da Cena representam um estágio diferente. Cada estágio parece um “mundo” separado. Por padrão, temos o Palco Principal, que é o palco onde estão todas as cenas (as cenas carregadas e que podem ser vistas na hierarquia). Ao abrir um Prefab no Modo Prefab, nós criamos um estágio Prefab para o conteúdo do Prefab. Não descarregamos GameObjects do palco principal quando um estágio Prefab é aberto, o que significa que você ainda poderá vê-los na visualização do jogo.
A exibição de cena e a hierarquia sempre mostram o estágio atual, que é aquele que corresponde à panqueca mais direita. Para voltar ao Palco Principal com suas Cenas, clique no botão "Cenas" nos pedaços de pão da exibição da Cena ou no botão de seta Para trás na hierarquia.
Para ver os novos fluxos de trabalho em ação confira o vídeo abaixo:
Para testar os novos recursos de Prefab, baixe a build de visualização na nossa página de Prefab. Confira também o nosso fórum dedicado para Prefabs aprimorados para obter mais informações, perguntas e feedback.
Fique ligado nas próximas publicações do blog com informações mais detalhadas sobre outras partes dos fluxos de trabalho de Prefab aprimorados.
Se você quiser ver os fluxos de trabalho prefab aprimorados em ação, recomendamos muito ajustar a transmissão ao vivo da Unite Berlin hoje no YouTube ou na Twitch. A partir das 17h do tempo de Berlim, você pode pegar o fluxo de trabalho de Prefab melhorado com Ciro Continisio. Depois disso, Rune Skovbo Johansen e Steen Lund ajudarão você a entender melhor os prós e contras das nossas decisões de implementação em seu profundismo técnico no Novo Sistema Prefab (6:00). Trabalharemos para editar as palestras posteriormente e publicá-lasemos em nosso canal no YouTube um mês depois da conferência.
