Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos II / Aula

arrow_back Aula 06 - Jogo Polygonal Rescue - Parte 4 - Prefabs e Mudanças de Fases

Prefabs

No Unity, Prefabs são GameObjects pré-configurados que você cria na cena e armazena no seu projeto. Assim, eles podem ser clonados em diversas cenas do projeto, criando-se, dessa maneira, instâncias do Prefab com as mesmas características do original. Isso possibilita que GameObjects, como o personagem e os polígonos coletáveis de determinado tipo, por exemplo, possam ser criados somente uma vez e reutilizados em todas as cenas (ou fases) do jogo.

Você pode se perguntar o seguinte: mas não basta copiar e colar o personagem de uma cena para outra a fim de obter o mesmo efeito de quando um Prefab é usado? A resposta para essa pergunta é sim e não. É verdade que, se o desenvolvedor copiar um GameObject de uma cena e colar em outra, essa cópia terá as mesmas características do original, entretanto, essas duas cópias do personagem não são instâncias de um mesmo GameObject, pois são duplicatas totalmente independentes. Isso significa que, se você fizer uma mudança em uma delas, essa mudança não será refletida na outra, te obrigando a realizar a mesma mudança em todas as cópias do personagem. Imagine fazer isso em um jogo com 50 fases! Não é nada prático. Os Prefabs ajudam a resolver esse problema, permitindo que você “transforme” o personagem original em um Prefab e utilize esse Prefab para criar as outras instâncias dele em outras fases. Assim, uma mudança feita em um dos personagens pode se refletir para todos os outros, sem a necessidade de se alterar manualmente todos eles.

Outra funcionalidade dos Prefabs é a possibilidade de se criar instâncias deles no jogo durante a sua execução, ou seja, enquanto o jogo está rodando você pode, através de comandos nos scripts, criar instâncias de Prefabs na cena atual. Isso é muito útil em casos que você não sabe previamente quantos objetos de um determinado tipo precisam ser criados nem o local dessa criação. Imagine um jogo de tiro, por exemplo, no qual o jogador deseja realizar um disparo. Você não pode criar infinitos projéteis na sua arma, pois isso, além de impossível, deixaria o jogo muito pesado. Alternativamente, você pode criar um Prefab que representa um projétil e, no momento de cada disparo, criar uma nova instância dele e configurar sua velocidade e direção de acordo com a posição e orientação da arma. Existem muitos casos nos quais o uso de Prefabs é bastante útil, tanto para a criação de instâncias no editor do Unity como durante a execução do jogo.

Versão 5.3 - Todos os Direitos reservados