Cause Dano a Tudo
Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 43 de 50.
Desafio
MédioAgora a luta acontece nos dois sentidos. Mantenha tudo das lições anteriores. Os inimigos não têm mais tags: o golpe encontra o que puder ferir por meio de uma interface, e os inimigos ferem o herói por meio da mesma interface.
IDamageabledeclara um método,void TakeDamage(int amount);.Enemyimplementa essa interface. Ele recebehealth,damageeattackEvery, definidos no Inspector (um grunt tem 2, 1 e 1; o dasher, 1, 2 e 1).TakeDamagesubtraiamountdehealthe destrói o inimigo quando chega a 0 ou menos. EmStart, mantenha também oIDamageabledo herói. A cada quadro, quando o herói estiver a até 1.2 unidades de distância, chame o métodoTakeDamage(damage)dele, no máximo uma vez a cadaattackEverysegundos.Heroimplementa essa interface, comswingDamage(1),maxHealth(5) esafeTime(1) definidos no Inspector, e umhealthque começa com o valor demaxHealthemAwake. Um golpe subtraiamount, registra a saúde comoHero HP: 4e mantém o herói protegido de novos golpes porsafeTimesegundos. Com 0 de saúde, registreThe hero fallse desative o script Hero (enabled = false). Um herói caído ignora os golpes.- O golpe não verifica mais tags nem destrói nada: ele chama
TakeDamage(swingDamage)em tudo que estiver ao alcance e à frente e tiver umIDamageable.
Pressione Play e lute; em seguida, clique em Check.
Experimente você mesmo
// Uma aula posterior vai completar isto: qualquer coisa que possa sofrer dano.
public interface IDamageable
{
}
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