Punti di passaggio
Lezione 1 di 25 del corso Gioco Unity: Tower Defense di Coddy.
In questo corso crei un gioco tower defense: i nemici percorrono un sentiero a ondate verso la tua base e le torri che costruisci accanto al sentiero li fermano. Ogni lezione aggiunge una funzionalità. Premi «Gioca» per provarla e «Verifica» per valutarla. Tutti e dodici gli script sono già presenti nel progetto; la maggior parte sono stub brevi che le lezioni successive completano, mentre EnemyData viene fornito per la lezione 2.
Il sentiero è composto da otto waypoint, da WP0, il punto di generazione, a WP7, la base, nell'array waypoints del Grunt. Il Grunt conserva l'indice del waypoint verso cui si dirige e si muove in quella direzione. Vector3.MoveTowards non oltrepassa mai il bersaglio, quindi il Grunt arriva esattamente sul waypoint e == può rilevare che è arrivato:
Vector3 target = waypoints[3].position;
transform.position = Vector3.MoveTowards(transform.position, target, 5f * Time.deltaTime);
if (transform.position == target)
{
// arrivato: dirigiti verso il prossimo punto
}Dopo l'ultimo waypoint, l'indice è uguale a waypoints.Length e leggere l'array in quella posizione genera un errore, quindi controlla l'indice prima di usarlo.
Sfida
FacileFai camminare il Grunt lungo il percorso, da un waypoint all'altro.
- In
Enemy, aggiungiprivate int next = 1;(il Grunt inizia su WP0). - In
Update, restituisci il controllo quandonext >= waypoints.Length. - Muoviti verso
waypoints[next].positionconVector3.MoveTowardsaspeed * Time.deltaTime; quando arriva, eseguinext++.
Premi «Gioca»: il Grunt percorre ogni angolo e si ferma alla base. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class Enemy : MonoBehaviour
{
public float speed = 2f;
public Transform[] waypoints;
void Update()
{
// Percorri il tragitto qui: da un waypoint all'altro, in ordine.
}
}
Tutte le lezioni di Gioco Unity: Tower Defense
1Il percorso
Punti di passaggioDati dei nemiciEsercitati da solo: Playground Unity