Menu
CoddyTech

Oggetti in caduta

Lezione 13 di 16 del corso Gioco Unity: Rompi-mattoni di Coddy.

Un mattone rotto a volte rilascia un potenziamento che cade verso la racchetta. Che venga rilasciato o meno dipende da un tiro casuale: Random.value è un numero decimale casuale compreso tra 0 e 1, quindi Random.value < 0.15f è vero circa 15 volte su 100. Mantenere la probabilità in un campo permette di regolarla e consente a un test di impostarla a 1 per ottenere un rilascio ogni volta oppure a 0 per non ottenerne mai.

Quale potenziamento viene rilasciato dipende da un secondo tiro casuale: un indice casuale in un array di prefabbricati. Random.Range con valori interi esclude il valore massimo, quindi Random.Range(0, array.Length) può selezionare ogni elemento. Il bottino di un nemico:

public GameObject[] loot;
public float lootChance = 0.25f;

void DropLoot()
{
    if (Random.value >= lootChance) return;
    int pick = Random.Range(0, loot.Length);
    Instantiate(loot[pick], transform.position, Quaternion.identity);
}

Un potenziamento cade a velocità costante spostandosi a ogni fotogramma e si distrugge quando scende sotto l'area di gioco, così quelli mancati non si accumulano. Il suo prefabbricato ha un Rigidbody cinematico e un collider trigger, così il sistema fisico sa che si muove e potrà rilevare quando raggiunge la racchetta.

challenge icon

Sfida

Difficile
  1. In PowerUp, aggiungi public float fallSpeed = 3f e public float bottomY = -9f. In Update(), fallo scendere alla velocità di fallSpeed unità al secondo e distruggi il potenziamento quando la sua coordinata y è inferiore a bottomY.
  2. In GameManager, aggiungi public GameObject[] powerUps (la scena collega i prefab WidePowerUp e MultiPowerUp) e public float dropChance = 0.15f.
  3. In BrickBroken, con una probabilità pari a dropChance, genera un elemento casuale di powerUps nel punto in cui si trovava il mattone.

Per ora i potenziamenti attraversano la racchetta: il prossimo passo sarà prenderli.

Premi Play, rompi i mattoni finché non ne cade uno, poi premi Check.

Provalo tu

using UnityEngine;

public class PowerUp : MonoBehaviour
{
    // L'ultimo capitolo: i potenziamenti che cadono dai mattoni distrutti.
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Gioco Unity: Rompi-mattoni