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;
}Sfida
MedioLe torri scagliano frecce una volta al secondo.
EnemyimplementaIDamageable:TakeDamage(int amount)sottrae il valore dahealth, distruggendo il nemico quando raggiunge 0 o meno.Projectile:Launch(Transform target, int damage)conserva entrambi i valori;Updatevola verso il bersaglio aspeed, chiamaTakeDamage(damage)all’arrivo e si autodistrugge, anche quando il bersaglio non c’è più.Tower: aggiungipublic int damage = 2;e[SerializeField] private Projectile projectilePrefab;; spara come sopra datransform.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