Menu
CoddyTech

Pontos de referência

Lição 1 de 25 do curso Jogo de Unity: Defesa de Torres da Coddy.

Neste curso, você vai criar um jogo de defesa de torres: os inimigos percorrem um caminho em ondas em direção à sua base, e as torres que você constrói ao lado do caminho os impedem. Cada aula adiciona um recurso. Pressione “Jogar” para experimentar e “Verificar” para avaliar. Todos os doze scripts estão no projeto desde o início; a maioria são estruturas básicas curtas que as aulas posteriores completam, e EnemyData é fornecido para a aula 2.

O caminho tem oito pontos de referência, de WP0 no ponto de surgimento até WP7 na base, no array waypoints do Grunt. O Grunt mantém o índice do ponto para o qual está indo e se move em direção a ele. Vector3.MoveTowards nunca ultrapassa o alvo, então o Grunt chega exatamente ao ponto de referência e == pode indicar que ele chegou:

Vector3 target = waypoints[3].position;
transform.position = Vector3.MoveTowards(transform.position, target, 5f * Time.deltaTime);
if (transform.position == target)
{
    // chegou: siga para o próximo
}

Depois do último ponto de referência, o índice é igual a waypoints.Length, e ler o array nessa posição gera um erro, então verifique o índice antes de usá-lo.

challenge icon

Desafio

Fácil

Faça o Grunt percorrer o caminho, de ponto de referência em ponto de referência.

  1. Em Enemy, adicione private int next = 1; (o Grunt começa em WP0).
  2. Em Update, retorne quando next >= waypoints.Length.
  3. Mova-se em direção a waypoints[next].position com Vector3.MoveTowards a speed * Time.deltaTime; quando chegar lá, next++.

Pressione “Jogar”: o Grunt percorre cada esquina e para na base. Em seguida, clique em “Verificar”.

Experimente você mesmo

using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed = 2f;
    public Transform[] waypoints;

    void Update()
    {
        // Percorra o caminho aqui: de um ponto de passagem ao próximo, em ordem.
    }
}

Todas as lições de Jogo de Unity: Defesa de Torres

Pratique por conta própria: Playground de Unity