Interfejs programu i menu

Pominę całkowite podstawy, chyba każdy będzie potrafił dodać nowy projekt itp.
Pisząc gry 2D w Unity, tak naprawdę piszemy gry 3D, wyświetlane w osiach X i Y.
Polecam ustawić sobie układ okienek 2 by 3, oraz 1-kolumnową zakładkę Project.

Struktura folderów

Na początek 6 folderów powinno wystarczyć:

  1. Fonts – czcionki
  2. Levels – do przechowywania plików scen
  3. Prefabs – do kopiowania gotowych obiektów
  4. Scripts – do skryptów zachowań
  5. Sounds – do dźwięków
  6. Textures – do tekstur i materiałów

Scena

Wymyśliłem sobie, że zakładki można podzielić na 3 kategorie:

  1. Poziom w grze, zwany sceną. Są to pliki w formacie *.unity.
    Każdy poziom ma inne właściwości:

    • Scene – obszar na którym możemy umieszczać i przesuwać elementy.
    • Game – pole gry. To tutaj toczy się rozgrywka podczas debugowania.
    • Hierarchy – lista obiektów na danym levelu, z możliwością tworzenia drzewek.
  2. Project – pliki projektu, wspólne dla wszystkich scen.
  3. Inspector – coś w stylu properties z Visual Studio. Właściwości obiektu.

Bardzo ważne jest też, aby po stworzeniu projektu zapisać aktualną scenę!
Później co jakiś czas będziemy używać Ctrl + S do szybkiego zapisywania.

Zaczynajmy!

Na początek stworzę sobie menu oraz tło gry.
Pomyślałem, że dobrze będzie od tego zacząć, bo w dalszym ciągu nie mogę znaleźć odpowiadających mi tekstur statków…

Wszystko co potrzeba, to dodać tekst i guziki z zakładki UI.
Dodatkowo z zakładki 3D dodamy obiekt typu Quad i ustawimy mu materiał na Skybox. Dodałem od razu do projektu Skybox 2 i czcionkę Joystix.

Tworząc jakikolwiek element UI, zostanie dodany Canvas jako jego rodzic.
Domyślnie ‚płótno’ renderowane jest jako Overlay – nakładka na scenę.
Zmieniłem tu 3 rzeczy: nazwę na MainMenu, render na Camera oraz podpięłem mu kamerę Main Camera. Dzięki temu nie musimy się martwić pozycjonowaniem, kamera będzie jego wymiarami.

Problemy

Pytanie: Jakie wielkości stosują się do czego?

Odpowiedź: Nie wiem.
Wygląda mi to na używanie dwóch jednostek równocześnie.

Canvas posiada opcję przypinania obiektów, najepiej do środka ekranu.
Później oddalimy nagłówek o około 100-200px w górę.
To samo zrobimy z przyciskami, zachowując pewne odstępy.

Będzie trzeba zsumować wysokość tytułu + 4 guzików, dodać 4 odstępy.
Przykład: header ma 50px + buttony 30px + 20px odstępu między nimi.
Mamy 50 + 30×4 + 20×4 = 50 + 120 + 80 = 250px.
Menu powinno znajdować się wtedy na wysokości +125px a -125px.

Jeśli znamy wymiary i odstępy, najprościej będzie zacząć od najwyższego elementu.
Trzeba pamiętać, że pozycja na osi Y to środek obiektu.
Dlatego nagłówek powinien być ustawiony na 100px, a nie 125px.

Tu pojawia się druga wielkość. Kamera to tak jakby ekran użytkownika.
Skaluje się ona wraz z ekranem. Gracz nie będzie widział nic, co jest poza nią.
Dlatego jeśli na podglądzie napis wygląda jakby był na całej kamerze (Scene):

To niekoniecznie będzie tak samo wyglądać na ekranie Full HD:

Na dzisiaj wystarczy. Muszę się zastanowić nad rozdzielczością.
Jeśli gra jest tylko na PC to 1600×900 powinno wystarczyć jako minimalna.
Jutro oprogramujemy guziki z menu. Chyba, że ta rozdzielczość nie da mi spokoju.