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.
Sfida
Difficile- In
PowerUp, aggiungipublic float fallSpeed = 3fepublic float bottomY = -9f. InUpdate(), fallo scendere alla velocità difallSpeedunità al secondo e distruggi il potenziamento quando la sua coordinata y è inferiore abottomY. - In
GameManager, aggiungipublic GameObject[] powerUps(la scena collega i prefab WidePowerUp e MultiPowerUp) epublic float dropChance = 0.15f. - In
BrickBroken, con una probabilità pari adropChance, genera un elemento casuale dipowerUpsnel 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.
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.