Tworzenie obiektów w siatce
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 50 z 67.
Pętla wewnątrz pętli odwiedza każdą komórkę siatki: pętla zewnętrzna wybiera kolumnę, a wewnętrzna porusza się wzdłuż niej. Umieść w niej Instantiate, a w każdej komórce pojawi się obiekt. W ten sposób powstaje podłoga o wymiarach 3 na 3 z kafelków o szerokości 2 jednostek, rozmieszczonych co 2 jednostki:
public GameObject tilePrefab;
void Start()
{
for (int x = 0; x < 3; x++)
{
for (int z = 0; z < 3; z++)
{
Vector3 spot = new Vector3(x * 2, 0, z * 2);
Instantiate(tilePrefab, spot, Quaternion.identity, transform);
}
}
}Kafelki znajdują się w pozycjach x = 0, 2, 4 oraz z = 0, 2, 4: jest ich dziewięć, od (0, 0, 0) do (4, 0, 4). Pętle wykonują się raz w Start(). W Update() dodawałyby dziewięć kolejnych kafelków w każdej klatce.
Czwarty argument to obiekt nadrzędny. Dziewięć niepowiązanych obiektów Tile(Clone) zaśmieciłoby Hierarchy; przekazanie transform umieszcza je w obiekcie, do którego przypisany jest ten skrypt — Floor — dzięki czemu można je zwinąć, przenieść razem lub usunąć razem. Przekazana pozycja nadal jest pozycją w świecie.
Wyzwanie
ŚredniZbuduj ścianę z prefabrykatu Brick, o szerokości 4 cegieł i wysokości 5 rzędów, stojącą na ziemi. Cegła ma 1 jednostkę szerokości i 0.5 wysokości.
- 4 kolumny znajdują się w punktach x = -1.5, -0.5, 0.5 i 1.5.
- Dolny rząd spoczywa na ziemi, więc jego cegły znajdują się na y = 0.25. Każdy rząd jest o 0.5 wyżej niż rząd poniżej.
- Każda cegła znajduje się na z = 0, nie jest obrócona i jest dzieckiem obiektu Wall, na którym znajduje się ten skrypt.
Naciśnij Play, aby zobaczyć ścianę, a następnie Check.
Spróbuj swoich sił
using UnityEngine;
public class WallBuilder : MonoBehaviour
{
public GameObject brickPrefab;
void Start()
{
// 4 kolumny i 5 rzędów cegieł, każda cegła jest obiektem potomnym tego Wall
}
}
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