Menu
CoddyTech

Revisão: torre modular

Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 5 de 64.

challenge icon

Desafio

Fácil

Construa a arma de Turret1. TurretControl e Cannon estão prontos.

  1. Em Ammo, escreva public bool Take(): use um projétil e retorne true, ou registre name + " is empty" e retorne false.
  2. Faça Weapon ser abstrata com [RequireComponent(typeof(Ammo))], e Fire() ser protected abstract, sem corpo.
  3. Pull() não faz nada durante o cooldown; caso contrário, se Take() retornar verdadeiro, reinicie o tempo de recarga e chame Fire().

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

Pratique por conta própria: Playground de Unity