Menu
CoddyTech

Generazioni casuali

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 53 di 67.

Random.Range(min, max) sceglie un numero casuale e ciò che può restituire dipende dal tipo di numeri che gli passi. Con i float, può restituire qualsiasi valore da min a max, inclusi entrambi gli estremi. Con gli int, max è escluso. Perciò, per il lancio di un dado si richiede un numero da 1 a 7:

int roll = Random.Range(1, 7);   // 1, 2, 3, 4, 5 o 6
Debug.Log("You rolled " + roll);

La versione per int esclude max, così Random.Range(0, names.Length) è sempre un indice valido per un array. Significa anche che Random.Range(-5, 5) restituisce solo numeri interi da -5 a 4, anche quando salvi il risultato in un float. Scrivi Random.Range(-5f, 5f) per ottenere un qualsiasi valore intermedio.

Per le posizioni e le direzioni in 3D, Unity ha due vettori casuali già pronti. Random.insideUnitSphere è un punto casuale all'interno di una sfera di raggio 1 attorno a (0, 0, 0). Random.onUnitSphere è un punto casuale sulla superficie di quella sfera, il che lo rende una direzione casuale di lunghezza 1. transform.position + Random.insideUnitSphere * 2f è una posizione distante fino a 2 unità in qualsiasi direzione, anche verso l'alto e verso il basso.

challenge icon

Sfida

Medio

Ogni clic dovrebbe far cadere una cassa da un punto casuale sopra il pavimento:

  • x e z: ciascuno può assumere qualsiasi valore da -4 a 4, non solo numeri interi;
  • y: 5, così la cassa cade sul pavimento;
  • nessuna rotazione.

Premi Play e fai clic alcune volte, poi Check.

Provalo tu

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // Lascia cadere una cassa da una posizione casuale: x e z da -4 a 4, y = 5
        }
    }
}
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 Fondamenti di scripting in Unity