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ół.
Wyzwanie
ŚredniKaż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
}
}
}
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
1Twój pierwszy skrypt
Witaj, UnityUmieść sześcianPoruszaj się w każdej klatceObracaj się co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian2Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPodsumowanie: Winda5Transformacje i hierarchia
Rodzice i dzieciSkalaPatrz na obiektyPoruszanie się w kierunku punktuPodsumowanie: Księżyc krążący po orbicie3Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski o nazwachPrzyciski myszyPowtórka: naładowany skok6Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePodsumowanie: włącznik światła9Prefabrykaty i tworzenie obiektów
Prefabrykaty i InstantiateTworzenie obiektów według timeraTworzenie obiektów w siatceListy obiektówNiszczenie obiektówLosowe tworzenie obiektówPowtórka: fajerwerki