Menu
CoddyTech

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.

challenge icon

Wyzwanie

Średni

Zbuduj ś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
    }
}
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