Recapitulação: pool de projéteis
Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 49 de 64.
O pooling mantém objetos desativados prontos para uso, em vez de destruí-los. Aqui, as balas do tanque vêm de ObjectPool do Unity e voltam após cada disparo.
Desafio
MédioFaça o tanque disparar projéteis reutilizados do pool.
- Em
AwakedeTank, crie umObjectPool<Bullet>: ative quando um projétil for obtido, desative quando for liberado, destrua quando for descartado, commaxSize: 4. - Ao pressionar Espaço, obtenha um projétil, posicione-o 1 unidade à frente do tanque e passe o pool para ele.
Bulletvoa na direção +z comspeed; ele se liberalifesegundos após cada disparo ou ao atingir umTarget(chameHit()).
Pressione “Jogar” e atire nos dois alvos. Em seguida, clique em “Verificar”.
Experimente você mesmo
using UnityEngine;
using UnityEngine.Pool;
public class Bullet : MonoBehaviour
{
public float speed = 15f;
public float life = 1f;
// Voe para a frente; volte para o pool ao atingir um Target ou após life segundos
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Arquitetura de Jogos no Unity
1Componentes, não hierarquias
Componentes pequenosUm script base de inimigoComponentes abstratosComponentes trabalhando juntosRevisão: torre modularRevisão: canhão duplo4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de LootRevisão: Sorteie o Loot2Interfaces no Unity
IDamageableInterfaces e TryGetComponentGetComponentsRevisão: tecla de interaçãoRevisão: mais próximo ao alcance5ScriptableObjects
Ativos de DadosAtributos da ArmaConfigurações CompartilhadasSalve o VentoOndas como DadosRevisão: Banco de ItensRevisão: Comprar na Loja3Eventos
Eventos de C# no UnityInscreva-se em OnEnableCampos de UnityEventEventos controlam a interfaceRevisão: pop-up de conquistaRevisão: temporizador do pop-up6Salvando com JSON
JsonUtilitySalve o jogoCarregar e valores padrãoRevisão: slots de salvamentoEscolha e exclua um slot9Pool de Objetos
Por que usar um pool de objetosUm pool com uma filaO ObjectPool da UnityRecapitulação: pool de projéteisPratique por conta própria: Playground de Unity