Menu
CoddyTech

Spara

Lezione 9 di 25 del corso Gioco Unity: Tower Defense di Coddy.

Una torre spara un Projectile contro il suo bersaglio. Il proiettile lo raggiunge con MoveTowards, seguendo il bersaglio mentre cammina, e lo danneggia all’arrivo. Non deve sapere di aver colpito un Enemy: richiede IDamageable, l’interfaccia per tutto ciò che può subire danni, così qualsiasi cosa la implementi può essere colpita.

Un bersaglio può morire mentre un proiettile è in volo. Un oggetto Unity distrutto viene considerato uguale a null, quindi il proiettile controlla prima target == null e si distrugge.

Per ora una torre spara una volta al secondo. Tiene traccia del momento del prossimo colpo:

if (Time.time >= nextShot)
{
    Fire();
    nextShot = Time.time + 1f;
}
challenge icon

Sfida

Medio

Le torri scagliano frecce una volta al secondo.

  1. Enemy implementa IDamageable: TakeDamage(int amount) sottrae il valore da health, distruggendo il nemico quando raggiunge 0 o meno.
  2. Projectile: Launch(Transform target, int damage) conserva entrambi i valori; Update vola verso il bersaglio a speed, chiama TakeDamage(damage) all’arrivo e si autodistrugge, anche quando il bersaglio non c’è più.
  3. Tower: aggiungi public int damage = 2; e [SerializeField] private Projectile projectilePrefab;; spara come sopra da transform.position + Vector3.up.

Premi «Gioca»: le frecce volano e i Grunt cadono. Poi premi «Verifica».

Provalo tu

using UnityEngine;

// Verrà aggiunto più avanti: un proiettile che vola da una torre verso il suo bersaglio.
public class Projectile : MonoBehaviour
{
}

Tutte le lezioni di Gioco Unity: Tower Defense

Esercitati da solo: Playground Unity