Menu
CoddyTech

Cadute

Lezione 14 di 19 del corso Gioco in Unity: Rompi i 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

A volte i mattoni rotti rilasciano un potenziamento.

  1. In PowerUp, aggiungi fallSpeed = 3f e bottomY = -9f; in Update(), fai scendere il potenziamento alla velocità fallSpeed al secondo e distruggilo quando scende sotto bottomY.
  2. In GameManager, aggiungi public GameObject[] powerUps; e public float dropChance = 0.15f;
  3. In BrickBroken, se Random.value < dropChance, istanzia powerUps[Random.Range(0, powerUps.Length)] nella posizione del mattone.

Premi «Gioca» e rompi i mattoni: di tanto in tanto ne cade un potenziamento (il modo per raccoglierlo arriva dopo). Poi premi «Verifica».

Provalo tu

using UnityEngine;

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

Tutte le lezioni di Gioco in Unity: Rompi i mattoni

Esercitati da solo: Playground Unity