Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Aggiungi livelli alle torri.

  1. In TowerData, aggiungi gli int pubblici maxLevel, upgradeCost e damagePerLevel e il float pubblico rangePerLevel.
  2. Aggiungi DamageAt(int level): damage + damagePerLevel * (level - 1); RangeAt allo stesso modo; UpgradeCost(int level): upgradeCost * level.
  3. In Tower, aggiungi private int level = 1;, public int Level => level; e public void Upgrade() { level++; }; spara usando DamageAt(level) entro RangeAt(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