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.
Sfida
MedioOgni 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
}
}
}
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
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce9Prefab e generazione di oggetti
Prefab e InstantiateGenerare oggetti con un timerGenerare oggetti in una grigliaElenchi di oggettiDistruggere oggettiGenerazioni casualiRiepilogo: fuochi d'artificio