Revisão: torre modular
Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 5 de 64.
Desafio
FácilConstrua a arma de Turret1. TurretControl e Cannon estão prontos.
- Em
Ammo, escrevapublic bool Take(): use um projétil e retornetrue, ou registrename + " is empty"e retornefalse. - Faça
Weaponser abstrata com[RequireComponent(typeof(Ammo))], eFire()serprotected abstract, sem corpo. Pull()não faz nada durante ocooldown; caso contrário, seTake()retornar verdadeiro, reinicie o tempo de recarga e chameFire().
Pressione “Jogar” e atire até acabar a munição. Depois, clique em “Verificar”.
Experimente você mesmo
using UnityEngine;
// O que todas as armas da torreta têm em comum.
public class Weapon : MonoBehaviour
{
public GameObject shellPrefab;
public float cooldown = 1f;
public void Pull()
{
// aguarde o fim do cooldown, pegue um projétil de Ammo e então dispare
}
// Cada arma dispara de um jeito próprio.
protected virtual void Fire()
{
}
// Um projétil lançado deste ponto, visto da torreta, voando na direção para a qual ela aponta.
protected void Launch(Vector3 offset)
{
Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
}
}
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 LojaPratique por conta própria: Playground de Unity