[Unity][2D] Start Guide - Szybki start pisania gier

W tym poradniku skupię się na najważniejszych aspektach potrzebnych do utworzenia gry w Unity. Nie będzie tutaj co prawda o obsłudze interfejsu edytora, zostanie natomiast przedstawiona techniczna idea działania silnika.




Scena:

Podstawowym elementem na którym tworzymy w Unity jest Scena reprezentowana przez panel Hierarchy:



Panel Hierarchy to drzewo zawierające w sobie Obiekty Gry[GameObject]. W odróżnieniu od obiektów znanych z programowania są to jedynie kontenery i same z siebie nie wykonują nic, po prostu istnieją i tworzą pewną hierarchię(jak się potem przekonamy to nawet nie sam obiekt tworzy tą hierarchię).



Tutaj mamy przykład hierarchii z zagnieżdżeniami gdzie Canvas posiada kilka dzieci(Child), w tym jego dziecko Joystick także posiada kilka dzieci. Ogólnie taki rozkład hierarchii możemy wykorzystać do dziedziczenie pozycji.


GameObject


Ponieważ utworzenie GameObject`u wiąze się automatycznie z przypisaniem do niego komponentu Transform(o komponentach będzie mówione dalej):



Który określa pozycje tego obiektu w świecie gry oraz jego obrót i skalę, może zajść taka sytuacja że kilka obiektów jest zależnych od siebie np. kierowca będzie przemieszczał się wraz z ruchem pojazdu, skrzynia na statku będzie się przemieszczała wraz z tym statkiem itp. Żeby przedstawić taką zależność tworzona jest właśnie hierarchia obiektów gry.

Oprócz Transform(czyli definicji rozmiaru i pozycji obiektu w świecie gry), każdy obiekt może posiadać swój TAG, czyli grupę obiektów do których przynależy, możemy na przykład wszystkie pojazdy dodać do grupy Vehicles, wtedy otrzymamy możliwość szybkiego odnajdowania obiektów z takim tagiem w naszych skryptach. Layer jest przydatna do określenia warstwy rysowania naszego obiektu, jeśli na przykład nasz obiekt gry przedstawia postać ducha to możemy dodać go do warstwy GhostLayer i wykorzystać to w taki sposób że gracz w normalnym trybie nie będzie widział nic na warstwie GhostLayer, natomiast po przejściu w inny tryb(modyfikacja ustawień kamery) będą dla niego widoczne wszystkie duchy na scenie:)

Komponenty


Na każdy obiekt zazwyczaj oprócz Transform składają się także inne komponenty(elementy składowe/ składniki) definiujące jego przeznaczenie i logikę np.:



Przedstawia obiekt kamery, będący na każdej naszej scenie. To że definiuje on kamerę widzimy po wykorzystaniu komponentu Camera.

To że może on wyświetlać GUI - interfejs użytkownika/ buttony, listy, suwaki - określa komponent GUI Layer

Widok efektów świetlnych - określa komponent Flare Layer

To że możemy słyszeć dźwięki określa komponent Audio Listener

Powyższe komponenty należą do grupy tzw. natywnej - czyli takie elementy które udostępniane są przez Unity i nie mamy dostępu do ich kodu. Natomiast ostatni komponent Camera2DFollow jest komponentem użytkownika i reprezentuje skrypt(ten akurat napisany w C#). To własnie na pisanie takich skryptów będziemy poświęcać najwięcej czasu.