Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C# - Helion
Tytuł oryginału: Developing 2D Games with Unity: Independent Game Programming with C#
Tłumaczenie: Andrzej Watrak
ISBN: 978-83-283-8236-7
stron: 248, Format: ebook
Data wydania: 2021-09-01
Księgarnia: Helion
Cena książki: 47,20 zł (poprzednio: 58,27 zł)
Oszczędzasz: 19% (-11,07 zł)
Unity jest zaawansowanym środowiskiem do tworzenia gier. Zapewnia możliwość projektowania grywalnych, świetnie wyglądających i pasjonujących gier. Dzięki temu, że Unity stworzono specjalnie w tym celu, projektant może się skupić na tym, co najważniejsze: na świetnej fabule i emocjonujących zwrotach akcji. Żmudne tworzenie kodu obsługującego podstawowe funkcje interfejsu, postaci czy sceny zostało ograniczone do minimum. Z takimi możliwościami rozpoczęcie pracy z Unity i napisanie pierwszej gry przychodzi naturalnie.
Ta książka jest praktycznym wprowadzeniem do tworzenia gier 2D w Unity. Dokładnie wyjaśniono w niej filozofię działania tego środowiska i zasady projektowania gier korzystających z silnika Unity. Starannie opisano takie zagadnienia jak arkusze duszków, dzielone kafelki i mapa kafelków. Omówiono również powiązane z Unity kanały dystrybucyjne, dzięki którym odkrywanie, kupowanie i sprzedawanie gier jest bardzo proste. Poszczególne zagadnienia zostały wyjaśnione za pomocą fragmentów kodu C#. Co prawda nie jest to podręcznik programowania w tym języku, jednak dzięki analizie poszczególnych przykładów, a także samodzielnym próbom modyfikowania i rozwijania kodu możesz poprawić również swoje umiejętności programowania w C#, używając go w praktyczny i konkretny sposób.
W książce między innymi:
- gruntowne wprowadzenie do pracy w Unity
- projektowanie interfejsu użytkownika
- budowa postaci i świata gry
- tworzenie niezbędnych skryptów, klas, koprocedur
- algorytmy sztucznej inteligencji do zastosowania w grach
Marzysz o grze idealnej? Więc siadaj i programuj!
Osoby które kupowały "Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C#", wybierały także:
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 99,00 zł, (29,70 zł -70%)
- Wzorce projektowe dla programistów C#. Kurs video 99,00 zł, (29,70 zł -70%)
- C# 9.0 w pigułce 173,87 zł, (53,90 zł -69%)
- Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń 57,74 zł, (17,90 zł -69%)
- ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core 178,97 zł, (62,64 zł -65%)
Spis treści
Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C# eBook -- spis treści
O autorze 9
O korektorze merytorycznym 10
Podziękowania 11
Przedmowa 13
O książce 15
Rozdział 1. Gry i silniki gier 17
- Silniki gier - czym one są? 17
- Pierwszy sposób budowania domu 19
- Drugi sposób budowania domu 19
- O pierwszym sposobie 19
- O drugim sposobie 20
- Podsumowując... 20
- Historia silników gier 20
- Dzisiejsze silniki gier 22
- Silnik Unity 22
- Podsumowanie 23
Rozdział 2. Wprowadzenie do programu Unity 25
- Instalacja 25
- Konfiguracja 26
- Edytor kodu: Visual Studio 28
- Interfejs użytkownika 28
- Panele edytora 29
- Konfiguracja i dostosowanie układu paneli 31
- Pasek narzędzi 32
- Położenie uchwytów obiektów 33
- Przyciski odtwarzania gry 33
- Struktura projektu 34
- Dokumentacja 35
- Podsumowanie 35
Rozdział 3. Podstawy 37
- Obiekt GameObject 37
- Wzorzec projektowy Jednostka-Komponent 38
- Komponenty - bloki konstrukcyjne 39
- Duszki 40
- Animacje 46
- Maszyna stanów 49
- Zderzacze 52
- Komponent Rigidbody 53
- Znaczniki i warstwy 53
- Znaczniki 53
- Warstwy 54
- Warstwy sortujące 55
- Prefabrykaty 57
- Skrypt - logika komponentu 59
- Stany i animacje 65
- Więcej o maszynie stanów 65
- Parametry animacji 67
- Podsumowanie 73
Rozdział 4. Budowanie świata gry 75
- Mapa i paleta kafelków 75
- Tworzenie palety kafelków 76
- Malowanie przy użyciu palety kafelków 77
- Narzędzia palety kafelków 78
- Praca z kilkoma mapami kafelków 80
- Ustawienia grafiki 83
- Kamera 83
- Narzędzie Cinemachine 86
- Instalacja Cinemachine w Unity 2020 86
- Po zainstalowaniu Cinemachine 86
- Wirtualna kamera 87
- Ograniczanie ruchów kamery 90
- Stabilizacja kamery 94
- Materiały 96
- Zderzacze i mapy kafelków 98
- Dwuwymiarowy zderzacz mapy 98
- Zderzacz złożony 99
- Edycja fizycznego kształtu duszka 101
- Podsumowanie 104
Rozdział 5. Wszystko razem 105
- Klasa Character 105
- Klasa Player 107
- Prefabrykaty 107
- Utworzenie obiektu monety 108
- Utworzenie zderzacza Circle Collider 2D 108
- Utworzenie niestandardowej etykiety 109
- Międzywarstwowe wykrywanie kolizji 110
- Wyzwalacze i skrypty 112
- Obiekty programowalne 113
- Tworzenie obiektu programowalnego 114
- Skrypt obiektu programowalnego 115
- Utworzenie przedmiotu 116
- Kolizje gracza 118
- Utworzenie prefabrykatu serca (ładunku energii) 119
- Podsumowanie 123
Rozdział 6. Zdrowie i inwentarz 125
- Tworzenie paska zdrowia 125
- Obiekt kanwy 125
- Element interfejsu użytkownika 125
- Tworzenie paska 126
- Kotwice 127
- Dopasowanie punktów zakotwiczenia 129
- Maska obrazu 131
- Importowanie niestandardowych czcionek 134
- Wyświetlenie liczby punktów 134
- Skrypt paska zdrowia 135
- Programowalny obiekt: HitPoints 136
- Modyfikacja skryptu Character 136
- Modyfikacja skryptu Player 137
- Utworzenie skryptu HealthBar 139
- Konfiguracja komponentu Health Bar 141
- Inwentarz 144
- Import obrazu pojemnika 146
- Konfiguracja obiektu Slot 147
- Utworzenie skryptu Inventory 152
- Podsumowanie 161
Rozdział 7. Postacie, koprocedury i punkty odrodzenia 163
- Tworzenia menedżera gry 163
- Singleton 163
- Utworzenie singletona 164
- Utworzenie prefabrykatu RPGGameManager 165
- Punkt odrodzenia postaci 166
- Utworzenie prefabrykatu punktu odrodzenia postaci 168
- Konfiguracja punktu odrodzenia 169
- Odrodzenie gracza 170
- Punkt odrodzenia przeciwnika 172
- Menedżer kamery 173
- Korzystanie z menedżera kamery 174
- Rozbudowa klasy Character 176
- Słowo kluczowe virtual 176
- Klasa Enemy 176
- Refaktoryzacja 177
- Koprocedury 177
- Wywołanie koprocedury 178
- Wstrzymywanie działania 178
- Pełna koprocedura 178
- Koprocedury z interwałami 179
- Słowo kluczowe abstract 179
- Implementacja klasy Enemy 180
- Metoda DamageCharacter() 180
- Metoda ResetCharacter() 182
- Wywołanie metody ResetCharacter() w metodzie OnEnable() 182
- Metoda KillCharacter() 182
- Modyfikacja klasy Player 183
- Refaktoryzacja instancji prefabrykatów 184
- Podsumowanie zmian 184
- Zastosowanie nowego kodu 184
- Metoda OnCollisionEnter2D() 185
- Metoda OnCollisionExit2D() 186
- Konfiguracja prefabrykatu EnemyObject 187
- Podsumowanie 187
Rozdział 8. Sztuczna inteligencja i strzelanie z procy 189
- Algorytm wędrowca 189
- Pierwsze kroki 189
- Utworzenie skryptu Wander 191
- Właściwości 191
- Metoda Start() 193
- Koprocedura WanderRoutine() 193
- Wybór nowego punktu docelowego 195
- Przeliczanie stopni na radiany i wektory 195
- Animacja postaci przeciwnika 196
- Koprocedura Move() 198
- Konfiguracja skryptu Wander 200
- Metoda OnTriggerEnter2D() 201
- Metoda OnTriggerExit2D() 202
- Elementy pomocnicze 203
- Samoobrona 205
- Niezbędne klasy 206
- Klasa Ammo 206
- Import zasobów 206
- Dodanie komponentów i ustawienie warstw 207
- Modyfikacja macierzy kolizji 207
- Utworzenie skryptu Ammo 208
- Zanim zapomnisz: przekształć obiekt AmmoObject w prefabrykat 209
- Pula obiektów 209
- Utworzenie klasy Weapon 210
- Atrapy metod 212
- Metoda SpawnAmmo() 213
- Klasa Arc i interpolacja liniowa 214
- Punkty ekranu i punkty świata gry 216
- Metoda FireAmmo() 217
- Konfiguracja komponentu Weapon (Script) 218
- Łuk 219
- Animacja gracza strzelającego z procy 220
- Animacje i drzewo mieszające 220
- Drzewo mieszające 221
- Uporządkowanie panelu Animator 221
- Utworzenie drzewa Walk Tree 222
- Warstwy od góry do dołu 223
- Typy mieszania 224
- Parametry animacyjne 224
- Wykorzystanie parametrów 225
- Po co to wszystko? 226
- Czas działania pętli 228
- Utworzenie przejścia 228
- Modyfikacja skryptu kontrolera 229
- Import duszków strzelającego gracza 230
- Utworzenie klipów animacyjnych 230
- Utworzenie drzewa Fire Tree 231
- Właściwość Exit Time 233
- Modyfikacja klasy Weapon 233
- Definicje właściwości 233
- Metoda Start() 234
- Modyfikacja metody Update() 235
- Określanie kierunku strzału 235
- Metoda Slope() 237
- Wyliczenie współczynników kierunkowych 237
- Porównywanie punktów przecięcia 238
- Metoda HigherThanNegativeSlopeLine() 239
- Metoda GetQuadrant() 239
- Metoda UpdateState() 240
- Migotanie po osłabieniu 242
- Modyfikacja klas Player i Enemy 243
- Kompilowanie gry 243
- Zamykanie gry 244
- Podsumowanie 245
- Co dalej? 246
- Społeczności twórców gier 246
- Dowiedz się więcej 246
- Gdzie szukać pomocy? 247
- Sztafety gier 247
- Wiadomości i artykuły 247
- Gry i zasoby 248