Revisão: Torre modular
Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 5 de 50.
Desafio
FácilMonte as duas torretas do campo de testes usando as peças. TurretControl.cs já gira cada torreta com as setas para a esquerda e para a direita, e Shell.cs faz um projétil voar para a frente. A cena dá à Turret1 um Cannon e uma Ammo com 4 projéteis, e à Turret2 um TwinCannon e uma Ammo com 3 projéteis. Escreva as peças:
- Ammo: um
shellsint público e um método públicobool Take(). Se ainda houver um projétil, usa um e retornatrue. Se não houver nenhum, registra o nome do objeto eis empty, como emTurret2 is empty, e retornafalse. - Weapon: um componente abstrato que sempre vem com um Ammo, com um
shellPrefabpúblico (um GameObject), umcooldownfloat público (o Inspector define como 1) e um método públicoPull(). Um acionamento durante o tempo de recarga não faz nada e não usa nenhum projétil. Caso contrário, seTake()fornecer um projétil, o tempo de recarga começa eFire()é executado — um método abstrato que cada arma implementa. - Cannon dispara um projétil a 1 unidade à frente da torreta. TwinCannon dispara dois projéteis usando um projétil de munição, a 0.4 à esquerda e 0.4 à direita desse ponto. Um projétil começa em
transform.position + transform.rotation * offset, orientado como a torreta (transform.rotation), em queoffseté a posição vista a partir da torreta, comonew Vector3(0f, 0f, 1f). - Em TurretControl, a tecla Espaço aciona o gatilho de qualquer Weapon que a torreta tenha.
Pressione Play, gire e dispare até que as duas torretas fiquem sem munição e, em seguida, Check.
Experimente você mesmo
using UnityEngine;
// O que todas as armas de torreta têm em comum.
public class Weapon : MonoBehaviour
{
}
Todas as lições de Arquitetura de jogos no Unity
1Componentes, não hierarquias
Componentes pequenosUm script-base para inimigosComponentes abstratosComponentes trabalhando juntosRevisão: Torre modular4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de Loot7Máquinas de Estados
Estados como ClassesUma Máquina de EstadosTransiçõesInteligências dos InimigosRevisão: Estados da Porta10Projeto: Sobrevivente da Arena
O HeróiTipos de Inimigos5ScriptableObjects
Assets de dadosAtributos das armasConfigurações compartilhadasOndas como dadosRevisão: banco de dados de itens