O Smart Substituir é um plug-in do Unity que ajuda a restaurar links prefabbados quebrados. Além disso, ele também pode substituir os pré -fabricados na cena por pré -fabricantes semelhantes que contêm os mesmos scripts sem perder alterações ou referências de objeto.
Para usar o plug -in, é necessário definir a versão .NET Corrent para o seu projeto. Caso contrário, não será compilado . Você pode alterar a versão .NET via: File -> Build settings -> Other settings -> Configuration -> Scripting Runtime Version -> .NET 4.x Equivalent
Depois de baixar e instalar o pacote, você pode abrir a janela Smart Substituir navegando para Tools -> Replace prefab...
Os exemplos a seguir mostrarão os principais casos de uso do plug -in. Há também um vídeo no YouTube que explica o plug -in de maneira mais vívida.

Para restore a prefab link de um objeto de cena, primeiro arraste o objeto de cena para o campo correspondente da janela. Em seguida, encontre o Prefab original na janela do projeto Unity e solte -o no campo fresh prefab .
Em Transfer component values você pode selecionar todos os componentes que podem ter alterações que deseja preservar. Atualmente, as configurações dos componentes da unidade não são suportadas, com exceção dos valores transform .
Depois que essas configurações foram feitas, você pode pressionar Replace e o link Prefab será restaurado sem perder as alterações que você fez em seu objeto na cena.
Muitas vezes, no desenvolvimento de jogos, os pré -fabricados são criados para testar uma funcionalidade específica de um jogo Elememt. Nos estágios posteriores do desenvolvimento de jogos, será criada uma versão melhor deste botão - com modelos mais bonitos, texturas, shaders e assim por diante.
Portanto, se você tiver um nível apenas com os pré -fabricados, mas deseja substituir todos eles pela sua nova e melhor versão, o Smart.place pode ajudá -lo.
As imagens de exemplo abaixo mostram uma cena com um botão e uma porta. O botão possui um script chamado de Button Click que contém uma referência ao objeto da porta, para que possa abrir ou fechar a porta quando clicado.

Há também outro prefab de botão, como você pode ver na visualização do projeto, chamado Button 1 . Parece um pouco diferente, mas também contém o componente ButtonClick e, portanto, pode ser usado como nosso botão atual. Este é um bom candidato para substituir, por isso primeiro soltamos nosso objeto de cena na janela Smart.place, depois o melhor prefab, verifique se a referência da porta será mantida após a substituição e depois pressionamos replace .

O botão foi substituído com sucesso e ainda tem a referência à porta, para que ainda funcione!
Assim, todas as configurações de todos os componentes podem ser mantidas durante a substituição, como valores integer , colors , strings e assim por diante.
O Fresh prefab não precisa ter a mesma hierarquia de objetos que o scene object , pois o Smart.Place apenas cuida da interseção de componentes (consulte Limitações para obter mais informações).
Que tal substituir a porta agora? Isso parece um pouco complicado, já que a porta não é referenciada pelo botão. No entanto, o Smart.Replace faz, quando você ativa a opção Transfer external references .
O processo é o mesmo novamente. Primeiro, selecionamos o objeto de cena e depois o pré -fabricado. Novamente, pressionamos a substituição e a porta será substituída por outro pré -fabricado. Ao mesmo tempo, a referência do botão à porta será atualizada.
O Smart.Replace procurará referências de object e component externo ao objeto que está sendo substituído. Ele até pesquisará lists e arrays para possíveis referências e as atualizará como descritas.
Se você tem objetos semelhantes mutiplinados na cena que deseja substituir, seria tedioso fazê -lo um por um.
O Smart.Replace oferece pesquisa por objetos semelhantes, para que possamos substituir qualquer número de objetos de uma só vez. Primeiro, selecionamos qualquer um dos objetos na cena e, em seguida, um pré -fabricado - para que possamos procurar objetos semelhantes. Por padrão, não há filtros, portanto, todos os objetos na cena são mostrados. A pesquisa por nome é muito eficiente nos casos em que todos os objetos têm nomes semelhantes. Você também pode procurar componentes.
Se agora pressionarmos a substituição, vemos que todos os objetos são substituídos de uma só vez. Se eles tivessem referências um para o outro, também teriam sido preservados.
Para facilitar o uso do plug-in, ele tem algumas limitações que você deve conhecer:
component intersection mostre componentes da unidade por uma questão de completude, seus valores não podem ser mantidos atualmente. A única exceção é o componente transform que tem sua própria interface do usuário (veja abaixo).one component type per object . Se você tiver vários componentes do mesmo tipo no objeto de sua cena, apenas os valores do primeiro será mantido. O resto será descartado.object substituído serão mantidas. No entanto, as referências de objeto externo sempre apontarão para o objeto parent após a substituição. Você pode entrar em contato comigo a qualquer momento em [email protected].