Wypadało by zacząć pisać o czymś innym niż tylko o projekcie, dlatego też dzisiejszy post będzie o czymś innym niż zazwyczaj.
Dzisiejszy post rozpocznie serie postów (tak myślę) na temat Proceduralnego Generowania Siatki w Unity. Brzmi strasznie, ale takie nie jest 😈
Wstęp
Przygodę z proceduralnym generowaniem siatki w Unity musimy zacząć od klasy Mesh. To ona odpowiedzialna jest za przechowywanie wszystkich danych na temat siatki. A owymi danymi są:
- Współrzędne punktów tworzących siatkę
- Informacje na temat tworzenia poligonów
- Informacje na temat współrzędnych UV (Nałożenie 2-wymiarowej tekstury na 3-wymiarowy obiekt)
I wiele wiele innych, ale nie ma potrzeby tu o tym wspominać.
Zacząć czas
Na sam początek utworzymy sobie coś 2-wymiarowego, by nie było za trudno. Będzie to zwykły kwadrat, bez żadnych bajerów. Jakoś zacząć trzeba prawda? 😏
Na początku stworzymy klasę o nazwie MeshGenerator i zadeklarujemy by komponent do swojego działania potrzebował paru innych komponentów. Wydaję się to zawiłe, ale już tłumaczę.
By zobaczyć efekt naszej pracy, czyli utworzoną bryłę na scenie, potrzebujemy dwóch komponentów:
By zobaczyć efekt naszej pracy, czyli utworzoną bryłę na scenie, potrzebujemy dwóch komponentów:
Nie będę się zagłębiał co konkretnie robią te komponenty, na to przyjdzie czas 😉
Sprawienie by dodanie jakiegoś komponentu wymagało dodania innego wygląda tak:
Sprawienie by dodanie jakiegoś komponentu wymagało dodania innego wygląda tak:
Dobrze, teraz zajmijmy się obsługą owych komponentów. Wpierw najpierw się do nich dobierzmy:
Okej, mamy już potrzebne komponenty. Teraz czas zająć się tym co tygryski lubią najbardziej, czyli generowaniem siatki.
Zdefiniujmy sobie 4 punkty, tak jak na rysunku.
Pozycje punktów będą wyglądały następująco:
Stwórzmy nową siatkę i zdefiniujmy owe punkty:
No to połowa rzeczy za nami. Teraz musimy zdefiniować poligony.
Aby utworzyć poligony musimy stworzyć tablice zmiennych typu int które reprezentować będą indeksy punktów w tablicy verticles. I owa tablica zawsze jest 3 razy większa od tablicy zawierającej punkty. Trzeba również pamiętać że tutaj kolejność ma znaczenie. To znaczy, kolejność decyduje o tym w którą stronę będzie zwrócony poligon.
Tak więc do dzieła:
Zadanie dla ciebie: zobacz w jaki sposób tworzony jest poligon i co zależy od tego gdzie jest zwrócony 😉
I teraz uwaga, bo łączymy w końcu wszystko w jedno! 🚀
Przypisujemy odpowiednie tablice w widoczny na screenie sposób.
Teraz pozostaje wrzucić gotowy kod na scenę i zobaczyć co z tego wyszło.
I oto efekt:
Nie wygląda zbyt fajne co? Wrzućmy jeszcze do tego materiał i ustawmy wyświetlanie na "Shaded Wireframe".
I oto finalny efekt:
Teraz wygląda znacznie lepiej.
Udało nam się stworzyć naszą pierwszą siatkę w Unity!Tak oto kończy się ten post. W następnej części stworzymy sześcian wraz z kolizjami.
A to już niedługo 😉
Dodał byś w końcu jakiś plugin do wyświetlania kodu...
OdpowiedzUsuńMusze wpierw zobaczyć czy w bloggerze da się takie coś zrobić :P
UsuńNie działa...
OdpowiedzUsuń