Menu
CoddyTech

Losowe tworzenie obiektów

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 53 z 67.

Random.Range(min, max) wybiera losową liczbę, a to, co może zwrócić, zależy od typu podanych liczb. W przypadku liczb zmiennoprzecinkowych może zwrócić dowolną wartość od min do max, włącznie z oboma końcami przedziału. W przypadku liczb całkowitych sama wartość max jest wykluczona. Rzut kostką wymaga więc zakresu od 1 do 7:

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

Wersja dla liczb całkowitych wyklucza max, dzięki czemu Random.Range(0, names.Length) zawsze zwraca prawidłowy indeks tablicy. Oznacza to również, że Random.Range(-5, 5) zwraca tylko liczby całkowite od -5 do 4, nawet jeśli zapiszesz wynik w zmiennej typu float. Zapisz Random.Range(-5f, 5f), aby uzyskać dowolną wartość z tego przedziału.

Do określania punktów i kierunków w 3D Unity udostępnia dwa gotowe losowe wektory. Random.insideUnitSphere to losowy punkt wewnątrz kuli o promieniu 1, której środek znajduje się w punkcie (0, 0, 0). Random.onUnitSphere to losowy punkt na powierzchni tej kuli, a więc losowy kierunek o długości 1. transform.position + Random.insideUnitSphere * 2f wskazuje punkt oddalony o maksymalnie 2 jednostki w dowolnym kierunku, również w górę i w dół.

challenge icon

Wyzwanie

Średni

Każde kliknięcie powinno upuścić skrzynię z losowego miejsca nad podłogą:

  • x i z: dowolna wartość od -4 do 4, nie tylko liczby całkowite;
  • y: 5, aby skrzynia spadła na podłogę;
  • bez obrotu.

Naciśnij Play i kliknij kilka razy, a następnie Check.

Spróbuj swoich sił

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // Upuść skrzynię w losowym miejscu: x i z od -4 do 4, y = 5
        }
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy skryptów w Unity