Scena:
Podstawowym elementem na którym tworzymy w Unity jest Scena reprezentowana przez panel Hierarchy:![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfcrVcKwqzDLcXhuH6baiFrcLdKn0ab3kUxFW6gVDX8T-wpNJ2TMuYP6dzxJNkMx37d93pvZZ5FAY_Lys8j90gvylLXrTm5wAACkR9Tf-GGuolIx1WRn2R0DpFrdsyKQJmbNSXw1lV7yoQ/s640/2016-03-30+11_41_56-Ustawienia.png)
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ę).
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi14IVGvzoMVkkemYVTBUXUTt7TdLAjT02dMnUXUKZNbwqVgzeJLazcbZ5GapuU9rG3qZHKMxPz1lqzqq9r6OjD7WaZPUPTOaBrMXPTazZTj_sbqFG1pgwOTCKgR3mB_T0OoRa0pTrwUBM6/s1600/2016-03-30+11_50_42-Kalkulator.png)
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):
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigzB-oIi4nKx9R8ZehO0nDG4-5okXtmdivh5ASY6r7JvYvT61IR3t1ThuJf_I2F6oR5703Cwr77t8Pco8jhY3mv8UseSPmMwvaezHAtiM5gFYUqVYYgGcAE2s7UjL1die7F_318XcY02xg/s1600/2016-03-30+12_03_09-Unity+Personal+%252864bit%2529+-+MultiplayerGame.unity+-+New+Unity+Project+-+Android_+_D.png)
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.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtBNGtHEFx1LNzKRcnC8l5xOAv8pyjFo41xbBX6xcwd-dp1IctyNkYkSzzRKTwdlUSWNIzQOjxC1MJyQkTYXcKse41QjvbFSrDuCdedlPmVx1D1U3c9mRnTV1WwFLtoE-iNUXYwVCZ_K9D/s1600/2016-03-30+12_16_20-Unity+Personal+%252864bit%2529+-+MultiplayerGame.unity+-+New+Unity+Project+-+Android_+_D.png)
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.