www.math.uni.lodz.pl/ radmat
Cel ćwiczeń Celem bieżących ćwiczeń jest stworzenie własnego ekranu startowego oraz menu gry.
Własny ekran startowy Tworzymy nowy, pusty obiekt GameObject Create Empty i nadajemy mu nazwę ekranstartowy. Dodajemy płótno wybierając GameObject UI Canvas i ustawiamy jako dziecko obiektu ekranstartowy. Dodajemy obrazek wybierając GameObject UI Image i ustawiamy jako dziecko powyżej dodanego płótna. Rysunek: Hierarchia obiektów
Przygotowujemy grafikę, która będze naszym ekranem startowym i wczytujemy ją do Unity. Teraz należy zaznaczyć nasz obrazek i w oknie Inspector ustawić Texture Type na Sprite (2D and UI). Zatwierdzamy zmiany wybierając Apply. Rysunek: Ustawienie typu obiektu
Teraz musimy dokonać kilku zmian w płótnie. Zaznaczamy zatem obiekt Canvas będący dzieckiem obiektu ekranstartowy i dokonujemy następujących zmian w oknie Inspector: W zakładce Canvas zmieniamy typ Render Mode na Screen Space - Camera, co spowoduje wyświetlenie ekranu startowego na kamerze. Ustawiamy opcję Pixel Perfect, co zapewni lepszą ostrość obrazka. W polu Render Camera wybieramy Main Camera (Camera). Ustawiamy Order in Layer na 1, co spowoduje, że obrazek będzie wyświetlany od samej góry ekranu. Rysunek: Opcje płótna
Pozostaje nam jeszcze ustawienie opcji dla obiektu Image, będącego potomkiem obiektu ekranstartowy. Zaznaczamy ten obiekt i w oknie Inspector: Przenosimy grafikę stanowiącą ekran startowy do zakładki Source Image. Image Type zmieniamy na Filled. Należy jeszcze w Rect Transform ustawić wymiary naszej grafiki.
Rysunek: Opcje obrazka
Skrypt splash.js Tworzymy następujący skrypt i dodajemy go do obiektu ekranstartowy: private var timer: float = 0; Update() { timer += Time.deltaTime; if (timer >= 2) { Destroy(gameObject); } }
Menu gry Stworzymy teraz główne menu naszej gry. W tym celu tworzymy nową scenę i nadajemy jej nazwę scenamenu. Ponieważ chcemy, aby menu wyświetlało się na tle labiryntu, to ze sceny, na której mamy labirynt kopiujemy wybrane elementy (kamerę, podłoże, ściany, drzwi, itp.) i wklejamy na nową scenę. Ustawiamy odpowiednio kamerę.
Rysunek: Scena przeznaczona na menu po skopiowaniu wybranych elementów ze sceny z labiryntem i z ustawioną kamerą
Skrypt menu.cs Stworzymy teraz skrypt, który będzie odpowiedzialny za obsługę menu. Najpierw napiszemy prostą funkcję, która doda do tła logo gry. public Texture logo; void OnGUI() { GUI.DrawTexture (new Rect (0, 0, 300, 300), logo); } Skrypt dodajemy do Main Camera.
Ćwiczenie 1 Proszę przygotować w programie graficznym logo gry, a następnie dodać je do obiektu Main Camera. Rysunek: Uruchomiona gra z wstawionym logo
Ćwiczenie 2 Proszę w podobny sposób w jaki dodaliśmy logo, dodać do menu następujące pozycje: nowa gra, twórcy gry oraz wyjście. Rysunek: Uruchomiona gra z dodanymi opcjami menu
Ćwiczenie 3 Proszę teraz dopisać odpowiedni kod, który w zależności od wybrania przycisku z menu spowoduje: wczytanie pierwszego poziomu gry; wyświetlenie danych twórcy gry; wyjście z gry. Uwaga 1: Funkcja Quit, którą zapewne wykorzystają Państwo do zakończenia gry, nie zadziała ani w edytorze Unity, ani w przeglądarce. Uwaga 2: Dane twórcy gry można wyświetlić w nowej scenie. Wówczas należy zaprojektować przejście z tej sceny do menu. Po dodaniu nowej sceny trzeba zbudować projekt wybierając File Build Settings. W tym oknie należy oczywiście dodać przed chwilą stworzoną scenę.