Tworzenie obiektów w siatce
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 64 z 85.
Pętla wewnątrz pętli odwiedza każdą komórkę siatki: pętla zewnętrzna wybiera kolumnę, a wewnętrzna przechodzi 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 pojawią się w punktach o współrzędnych 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 po dziewięć kolejnych kafelków w każdej klatce.
Czwarty argument to obiekt nadrzędny. Dziewięć niepowiązanych obiektów Tile(Clone) zaśmiecałoby Hierarchy; przekazanie transform umieszcza je pod obiektem, do którego przypisany jest ten skrypt, czyli pod Floor, dzięki czemu można je zwinąć, przenosić razem lub usunąć razem. Przekazana pozycja nadal jest pozycją w świecie.
Wyzwanie
ŚredniZbuduj ścianę z prefabów Brick o szerokości 4 i wysokości 5.
- W
Start()wykonaj pętlę, w którejcprzyjmuje wartości od 0 do 3, a wewnątrz niejrod 0 do 4. - W wewnętrznej pętli wywołaj
Instantiate(brickPrefab, new Vector3(-1.5f + c, 0.25f + r * 0.5f, 0), Quaternion.identity, transform). Ostatni argument sprawia, że każda cegła staje się elementem podrzędnym obiektu Wall.
Naciśnij „Graj”: na ziemi stoi ściana z 20 cegieł. Następnie naciśnij „Sprawdź”.
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 jest obiektem potomnym tego Wall
}
}
Wszystkie lekcje w sekcji Podstawy skryptów w Unity
1Podstawy C# w Unity
Witaj, UnityZmienneLiczby dziesiętne wymagają fTekst w konsoliZmienne, które pamiętająIf i elsePorównywanie liczbPowtórka: Zbieracz monet4Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski z nazwamiPrzyciski myszyPowtórka: naładowany skok7Pętle i metody
Powtarzaj za pomocą forPętle wewnątrz pętliNapisz metodęMetody, które zwracają wynikTablicePowtórka: schody10Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż wyszukiwanieNull w UnityPowtórka: najbliższa moneta13Projekt: Unikaj bloków
BiegaczBloki z nieba2Wpraw to w ruch
Umieść sześcianPoruszaj w każdej klatceObracaj co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian5Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 to strukturaPodsumowanie: pilot drona8Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePowtórka: włącznik światła11Prefaby i tworzenie obiektów
Prefaby i InstantiateTworzenie obiektów według timeraTworzenie obiektów w siatceListy obiektówCofnij najnowszyNiszczenieLosowe tworzenie obiektówPowtórka: fajerwerkiPoćwicz samodzielnie: Edytor online Unity