Projektowanie gier w środowisku Unity 3.x / Will Goldstone
Transkrypt
Projektowanie gier w środowisku Unity 3.x / Will Goldstone
Projektowanie gier w środowisku Unity 3.x / Will Goldstone. – Gliwice, cop. 2013 Spis treści Przedmowa 9 O autorze 11 O recenzentach 12 Wstęp 15 Rozdział 1. Odkryj trzeci wymiar Zapoznanie się z podstawami grafiki 3D Współrzędne Przestrzeń modelu i przestrzeń świata Wektory Kamery Wielokąty, krawędzie, wierzchołki i siatki Materiały, tekstury i procedury cieniowania Fizyka bryły sztywnej Wykrywanie kolizji Podstawowe pojęcia związane ze środowiskiem Unity Metoda Unity — przykład Zasoby Sceny Obiekty gry Komponenty Skrypty Prefabrykaty Interfejs Widoki Scene i Hierarchy Panel Inspector Okno Project Widok Game Podsumowanie 21 21 22 22 23 24 25 28 29 29 30 31 32 32 32 33 33 34 35 36 38 39 40 40 Rozdział 2. Podstawy tworzenia prototypów i skryptów Twój pierwszy projekt w środowisku Unity Podstawowe środowisko prototypowe Definiowanie sceny Dodawanie prostego oświetlenia 43 44 45 46 47 Kolejna cegła w ścianie Zbuduj i zniszcz! Wprowadzenie do tworzenia skryptów Nowy skrypt definiujący zachowanie lub klasę Jak wygląda od środka działanie skryptu w języku C#? Jak wygląda od środka działanie skryptu w języku JavaScript? Atakowanie ściany Deklarowanie zmiennych publicznych Zrozumienie zasady działania polecenia Translate Implementacja funkcji Translate Testujemy bieŜącą wersję gry Tworzenie pocisku Przechowywanie obiektów jako prefabrykatów Wystrzelenie pocisku UŜycie funkcji Instantiate () do konkretyzowania obiektów PrzyłoŜenie wektora siły do bryły sztywnej Podsumowanie 48 52 53 53 54 56 57 58 62 63 64 65 67 68 68 69 71 Rozdział 3. Tworzenie środowiska Projektowanie gry UŜycie edytora terenu Opcje menu terenu Narzędzie edycji terenu Tworzenie wyspy — słońce, morze i piasek Podsumowanie 73 73 75 76 78 83 101 Rozdział 4. Postacie w grze i dalsze wykorzystanie skryptów UŜycie panelu Inspector Znaczniki Warstwy Prefabrykaty i panel Inspector Anatomia postaci Dekonstrukcja obiektu First Person Controller Relacje między obiektami nadrzędnymi i podrzędnymi Obiekt First Person Controller Dalsze wykorzystanie skryptów Polecenia Zmienne Kompletny przykład Funkcje Tworzenie własnych funkcji Deklarowanie własnej funkcji Polecenie if else Warunki wielokrotne Komunikacja międzyskryptowa oraz składnia z kropką 103 104 105 106 106 107 107 109 109 119 119 120 123 123 125 127 129 131 133 Dostęp do innych obiektów Find() i FindWithTag() SendMessage() GetComponent Komentarze Skrypt wykonujący operację poruszania postacią Analiza skryptu Deklaracje zmiennych Podsumowanie 133 133 134 135 138 139 139 140 145 Rozdział 5. Interakcje Zewnętrzne aplikacje modelujące Ogólne ustawienia modeli Meshes Normals and Tangents Materials Animations Animation Compression Definiowanie modelu placówki Dodawanie placówki Ustalenie połoŜenia Obrót Dodanie zderzaczy Dodanie komponentu Rigidbody Dodanie dźwięku Wyłączenie automatycznej animacji Kolizje i wyzwalacze Rzucanie promieni Zgubienie klatki Wykrywanie zderzenia z przewidywaniem Otwieranie drzwi placówki Metoda 1. Wykrywanie kolizji Metoda 2. Rzucanie promieni Metoda 3. Wykrywanie kolizji wyzwalającej Podsumowanie 147 147 148 148 149 150 150 151 151 152 153 153 154 156 156 156 157 160 161 162 163 164 179 185 189 Rozdział 6. Kolekcja, inwentarz i HUD Tworzenie prefabrykatu ogniwa energetycznego Pobieranie, importowanie i umieszczanie Identyfikacja ogniwa energetycznego Skalowanie i obrót zderzacza Dodawanie komponentu Rigidbody Tworzenie skryptu dla ogniwa energetycznego Dodawanie opcji wyzwalającego wykrywania kolizji Zapisywanie obiektu w postaci prefabrykatu 191 194 194 195 195 196 197 198 199 Rozrzucanie ogniw energetycznych Inwentarz gracza Zapamiętywanie poziomu zasilania Dodawanie funkcji CellPickup() Ograniczenie dostępu do placówki Ograniczenie dostępu do drzwi za pomocą licznika ogniw Wyświetlacz HUD dla ogniwa energetycznego Importowanie ustawień tekstur GUI Tworzenie obiektu GUITexture Umieszczanie tekstury PowerGUI Skrypt do podmiany tekstury Tablice Poinformowanie o otwarciu drzwi Wskazówki dla gracza Pisanie na ekranie za pomocą komponentu GUIText Podsumowanie 200 200 201 202 204 204 205 206 206 208 208 209 217 221 221 227 Rozdział 7. Konkretyzowanie obiektów i bryły sztywne Wykorzystywanie konkretyzacji Bryły sztywne Siły Komponent Rigidbody Tworzenie minigry Tworzenie prefabrykatu orzecha kokosowego Tworzenie obiektu Launcher Skrypt obsługujący rzucanie orzechami kokosowymi Końcowe procedury sprawdzające Ograniczenia konkretyzacji oraz usuwanie obiektów Dodawanie pomieszczenia przeznaczonego do rzucania kokosami Wygrywanie gry Końcowe usprawnienia Podsumowanie 229 230 231 232 232 233 234 236 238 247 248 251 266 271 274 Rozdział 8. Systemy cząstek Co to jest system cząstek? Particle Emitter Particle Animator Particle Renderer Definiowanie zadania UŜyte zasoby Tworzenie sterty gałęzi Tworzenie systemów cząstek dla ogniska Rozpalanie ognia Testowanie i weryfikacja działania A więc jaki mamy problem? 277 277 278 278 279 280 280 281 283 292 302 303 Podsumowanie 305 Rozdział 9. Projektowanie menu Interfejsy i menu Tworzenie sceny Tworzenie menu za pomocą obiektów GUITexture i zdarzeń myszy Dodawanie przycisku uruchamiania gry Skrypt obsługujący przycisk klasy GUITexture Wczytywanie scen Przypisywanie zmiennych publicznych Testowanie przycisku Dodawanie przycisku wyświetlającego instrukcje Dodawanie przycisku zakończenia gry Testowanie skryptów przy uŜyciu poleceń debugowania Tworzenie menu za pomocą klasy GUI środowiska Unity oraz kompozycji graficznych Wyłączanie obiektów gry Tworzenie menu Podsumowanie 307 308 310 315 315 315 318 319 320 321 321 324 Rozdział 10. Podstawy animacji Sekwencja animacji po wygraniu gry Metoda tworzenia sekwencji animacji Uruchamianie sekwencji wygrania gry Tworzenie komunikatów informujących o wygraniu gry Animowanie przy uŜyciu interpolacji liniowej Tworzenie obiektu obsługującego sekwencję zwycięstwa Tworzenie skryptu wygaszania ekranu i uŜycie panelu Animation Wczytywanie sekwencji wygrania gry Umieszczanie obiektów GUITexture w warstwach Wyzwanie — zmiana koloru ekranu w scenie Island Podsumowanie 351 351 352 354 354 356 358 360 372 373 374 374 Rozdział 11. Poprawa wydajności i końcowe modyfikacje Ulepszenie terenu i zdefiniowanie połoŜenia początkowego gracza Ulepszanie terenu Modyfikacja wzgórz i dolin oraz zastosowanie techniki przenikania tekstur Zdefiniowanie właściwej ścieŜki Początkowa lokalizacja postaci gracza Optymalizacja wydajności Płaszczyzny odcinające i mgła Odwzorowywanie światła Końcowe upiększenia Wulkan! Trajektorie lotu orzechów kokosowych 375 376 376 377 378 379 380 380 381 391 391 397 326 326 326 349 Podsumowanie 400 Rozdział 12. Budowanie i udostępnianie Opcje budowania Web Player Aplikacje samodzielne dla komputerów PC i Mac Widget aplikacji Dashboard dla OS X Ustawienia budowania Ustawienia gracza Ustawienia Cross-Platform Settings Ustawienia Per-Platform Settings Ustawienia jakości Ustawienia wejść dla gracza Budowanie gry Przystosowanie do wersji sieciowej Pierwsza kompilacja Budowanie dla sieci Udostępnianie swoich prac Udostępnianie prac na portalu Kongregate.com Podsumowanie 401 402 402 404 404 405 406 406 407 411 413 414 414 421 423 428 428 429 Rozdział 13. Testy i dalsze zdobywanie wiedzy Nauka poprzez działanie Testowanie i finalizowanie Wykorzystanie uŜytkowników do testowania Sposoby zdobywania wiedzy Studiuj róŜne zagadnienia Nie odkrywaj koła na nowo Jeśli czegoś nie wiesz, pytaj! Podsumowanie 431 432 432 433 437 437 438 438 439 Słowniczek 441 oprac. BPK