Como usar o Preset Manager na Unity

Em um post anterior, mostrei como criar Presets na Unity e como isso pode facilitar nosso trabalho enquanto desenvolvemos nosso jogo ao salvar as propriedades de componentes e assets para reutilizar. Isso já é ótimo, mas podemos ir um passo além. Podemos automatizar a aplicação de um Preset dependendo de nomes de arquivos, pastas e extensões com o Preset Manager.

Porém, antes de começarmos a usar o Preset Manager, precisamos criar um Preset para o componente ou asset. Caso ainda não saiba como fazer isso, você pode ler o post que publiquei em que ensino como criar Presets na Unity.

Além disso, é importante ter em mente que Presets são aplicados somente no momento em que um componente é adicionado a um GameObject ou um asset é criado. Caso fizermos uma alteração no Preset que gostaríamos que fosse aplicado a todo projeto, precisamos fazer isso manualmente.

Como criar um Preset padrão para um componente ou asset

Para abrir a janela do “Preset Manager”, no menu superior, clique em “Edit > Projects Settings”.

Na janela que se abriu, clique em “Preset Manager” na lista no lado esquerdo.

Em seguida, clique no botão “Add Default Preset”. A Unity irá exibir uma lista com os itens que aceitam um Preset padrão. Você pode procurar pelo item que você quer navegando pelas opções, ou usar a caixa de pesquisa.

Após selecionar para qual item você quer criar um Preset padrão, ele será adicionado na janela e algumas opções irão aparecer.

O primeiro campo “Filter”, é usado para filtrar quando um Preset deve ser usado. Vamos ver como ele funciona com mais detalhes depois.

No segundo campo podemos selecionar qual Preset queremos usar quando um componente é adicionado a um GameObejct ou um asset é criado. Para isso podemos clicar na bolinha e na janela que se abriu selecionar o Preset.

Podemos também clicar e arrastar o Preset até esse campo.

Outra forma de adicionar um Preset ao “Preset Manager” é selecionar o Preset na janela “Project” e na janela “Inspector”, embaixo do nome do Preset, clique no botão “Add to Rigibody2D default”. Fique atento porque o nome do botão irá mudar dependendo de qual componente pode usar o Preset.

Podemos ainda adicionar vários Presets diferentes ao mesmo componente ou asset. Para isso clique no sinal de mais no final da lista de Presets. 

Porém a Unity irá aplicar os Presets na ordem em que aparece na lista. Sem nenhum filtro, isso significa que o último Preset será sempre escolhido.

Como usar filtros

Caso não criarmos nenhum filtro, o Preset será aplicado automaticamente toda vez que adicionarmos o componente ou importarmos o asset. Porém, podemos criar filtros para definir quando um Preset deve ser usado.

Por exemplo, digamos que toda vez que adicionarmos o componente “Box Collider 2D” a um GameObject nomeado “Trap” queremos que a propriedade “Is Trigger” seja marcada. Para fazer isso, primeiro criamos um Preset com a configuração desejada. Em  seguida, adicionamos o Preset ao “Preset Manager” e  inserimos o nome do GameObject no campo “filter”.

Porém para criar filtros mais avançados precisamos criar uma busca glob, que é uma forma de criar padrões nos permite encontrar arquivos, pastas e extensões.

Para isso, precisamos iniciar o filtro com glob: e entre aspas escrever o filtro. Por exemplo, o filtro glob:”Sprites/*” irá aplicar o Preset a todos assets que forem criados na pasta “Sprites”.

Podemos usar o seguinte caracteres para criar um padrão para ser usado na busca glob:

SímboloDescrição
*Corresponde a qualquer número de caracteres, inclusive nenhum.
?Corresponde com um caractere qualquer.
[…]Corresponde a um intervalo de caracteres.
(Sprites|sprites)Pesquisas entre parênteses, separadas por uma barra vertical (que significa “ou”), indicam que os resultados do filtro podem corresponder a um dos padrões.
**Corresponde a zero ou mais diretórios e subdiretórios.

Alguns exemplos que podem ser úteis:

Busca globDescrição
glob:”Textures/*”Corresponde a qualquer o arquivo da pasta Sprites
glob:"Textures/*.png"Corresponde a qualquer arquivo .png que está na pasta Textures
glob”Textures/*_normal.png”corresponde a qualquer arquivo .png que termine com _normal
glob:"Textures/arquivo-?.png"Corresponde a qualquer na pasta Textures com o nome filename seguido por um caractere. Ex: arquivo-1, arquivo-a.
glob:"Textures/arquivo-[0-9].png"Corresponde a qualquer na pasta Textures com o nome filename que termina com um número entre 0 e 9.
glob:(”Textures/*.png|textures/*.png”)Corresponde a qualquer arquivo png na pasta Textures ou textures.
glob:”Textures/**.png”Corresponde a qualquer arquivo png na pasta Textures ou em subpastas.

Uma nota importante, os filtros diferenciam maiúsculas e minúsculas, ou seja, “arquivo” é diferente de “Arquivo”.

Como mudar a ordem dos Preset

Como mencionado anteriormente, a Unity irá aplicar os filtros na ordem em que aparece no “Preset Manager”, isso significa que caso vários Presets possam ser aplicados a um mesmo componente ou asset, a engine irá escolher aquele que aparece mais próximo do fim da lista. Por isso é importante a lista organizada de forma lógica.

Para mudar a ordem dos Presets na lista clique no símbolo “=” do Preset que você quer mover e arraste para sua nova posição.

Como remover um Preset padrão de um componente ou asset

Podemos remover um Preset do “Preset Manager” selecionando ele na janela do “Preset Manager” e clicando no sinal de menos. Se clicarmos no sinal de menos sem nenhum Preset selecionado, o último item da lista será removido.

Também pode selecionar o Preset na janela “Project” e na janela “Inspector” clicar no botão “Remove from TextureImporterdefault”. Da mesma forma de quando adicionamos o Preset o nome do botão irá mudar dependendo de qual componente pode usar o Preset. Contudo tenha cuidado ao fazer isso, pois caso você tenha adicionado o mesmo Preset com diferentes filtros essa opção irá remover todos.

Conclusão

Presets facilitam bastante nosso trabalho salvando as configurações de componentes, assets e configurações de projeto para serem reutilizadas. E junto do Preset Manager podemos automatizar a aplicação do Presets, eliminando mais uma tarefa repetitiva do nosso projeto. Assim podemos reduzir a quantidade de erros que acontecem durante o desenvolvimento, e usar nosso tempo para focar em aspectos mais importantes do jogo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *