Livelli delle torri
Lezione 16 di 25 del corso Gioco Unity: Tower Defense di Coddy.
Le torri verranno potenziate: ogni livello aumenta i danni e la portata, e ogni potenziamento costa più del precedente. I livelli seguono una regola, quindi l'asset contiene la regola anziché un elenco di numeri, e i metodi su ScriptableObject la calcolano, così ogni script che la richiede ottiene la stessa risposta. Il raccolto di un gioco agricolo:
public int YieldAt(int level)
{
return baseYield + yieldPerLevel * (level - 1);
}Il livello 1 è il valore base. La torre conserva solo il proprio level e spara con i numeri di quel livello.
Sfida
MedioAggiungi livelli alle torri.
- In
TowerData, aggiungi gli int pubblicimaxLevel,upgradeCostedamagePerLevele il float pubblicorangePerLevel. - Aggiungi
DamageAt(int level):damage + damagePerLevel * (level - 1);RangeAtallo stesso modo;UpgradeCost(int level):upgradeCost * level. - In
Tower, aggiungiprivate int level = 1;,public int Level => level;epublic void Upgrade() { level++; }; spara usandoDamageAt(level)entroRangeAt(level).
Premi «Gioca»: le torri combattono come prima. Poi premi «Verifica».
Provalo tu
using UnityEngine;
[CreateAssetMenu(fileName = "NewTower", menuName = "Tower Defense/Tower Data")]
public class TowerData : ScriptableObject
{
public string towerName;
public int cost = 50;
public int damage = 2;
public float range = 4f;
public float fireRate = 1f;
}
Tutte le lezioni di Gioco Unity: Tower Defense
Esercitati da solo: Playground Unity