ebook img

Projektowanie gier w środowisku Unity 3.x PDF

449 Pages·2012·16.95 MB·Polish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Projektowanie gier w środowisku Unity 3.x

Spis tre(cid:2)ci Przedmowa 9 O autorze 11 O recenzentach 12 Wst(cid:3)p 15 Rozdzia(cid:4) 1. Odkryj trzeci wymiar 21 Zapoznanie si(cid:3) z podstawami grafiki 3D 21 Wspó(cid:2)rz(cid:3)dne 22 Przestrze(cid:4) modelu i przestrze(cid:4) (cid:5)wiata 22 Wektory 23 Kamery 24 Wielok(cid:6)ty, kraw(cid:3)dzie, wierzcho(cid:2)ki i siatki 25 Materia(cid:2)y, tekstury i procedury cieniowania 28 Fizyka bry(cid:4)y sztywnej 29 Wykrywanie kolizji 29 Podstawowe poj(cid:3)cia zwi(cid:5)zane ze (cid:2)rodowiskiem Unity 30 Metoda Unity — przyk(cid:2)ad 31 Zasoby 32 Sceny 32 Obiekty gry 32 Komponenty 33 Skrypty 33 Prefabrykaty 34 Interfejs 35 Widoki Scene i Hierarchy 36 Panel Inspector 38 Projektowanie gier w (cid:2)rodowisku Unity 3.x Okno Project 39 Widok Game 40 Podsumowanie 40 Rozdzia(cid:4) 2. Podstawy tworzenia prototypów i skryptów 43 Twój pierwszy projekt w (cid:2)rodowisku Unity 44 Podstawowe (cid:2)rodowisko prototypowe 45 Definiowanie sceny 46 Dodawanie prostego o(cid:5)wietlenia 47 Kolejna ceg(cid:2)a w (cid:5)cianie 48 Zbuduj i zniszcz! 52 Wprowadzenie do tworzenia skryptów 53 Nowy skrypt definiuj(cid:6)cy zachowanie lub klas(cid:3) 53 Jak wygl(cid:6)da od (cid:5)rodka dzia(cid:2)anie skryptu w j(cid:3)zyku C#? 54 Jak wygl(cid:6)da od (cid:5)rodka dzia(cid:2)anie skryptu w j(cid:3)zyku JavaScript? 56 Atakowanie (cid:5)ciany 57 Deklarowanie zmiennych publicznych 58 Zrozumienie zasady dzia(cid:4)ania polecenia Translate 62 Implementacja funkcji Translate 63 Testujemy bie(cid:6)(cid:5)c(cid:5) wersj(cid:3) gry 64 Tworzenie pocisku 65 Przechowywanie obiektów jako prefabrykatów 67 Wystrzelenie pocisku 68 U(cid:6)ycie funkcji Instantiate() do konkretyzowania obiektów 68 Przy(cid:2)o(cid:7)enie wektora si(cid:2)y do bry(cid:2)y sztywnej 69 Podsumowanie 71 Rozdzia(cid:4) 3. Tworzenie (cid:2)rodowiska 73 Projektowanie gry 73 U(cid:6)ycie edytora terenu 75 Opcje menu terenu 76 Narz(cid:3)dzie edycji terenu 78 Tworzenie wyspy — s(cid:2)o(cid:4)ce, morze i piasek 83 Podsumowanie 101 Rozdzia(cid:4) 4. Postacie w grze i dalsze wykorzystanie skryptów 103 U(cid:6)ycie panelu Inspector 104 Znaczniki 105 Warstwy 106 Prefabrykaty i panel Inspector 106 Anatomia postaci 107 Dekonstrukcja obiektu First Person Controller 107 Relacje mi(cid:3)dzy obiektami nadrz(cid:3)dnymi i podrz(cid:3)dnymi 109 Obiekt First Person Controller 109 4 Spis tre(cid:2)ci Dalsze wykorzystanie skryptów 119 Polecenia 119 Zmienne 120 Kompletny przyk(cid:4)ad 123 Funkcje 123 Tworzenie w(cid:2)asnych funkcji 125 Deklarowanie w(cid:2)asnej funkcji 127 Polecenie if else 129 Warunki wielokrotne 131 Komunikacja mi(cid:3)dzyskryptowa oraz sk(cid:4)adnia z kropk(cid:5) 133 Dost(cid:3)p do innych obiektów 133 Find() i FindWithTag() 133 SendMessage() 134 GetComponent 135 Komentarze 138 Skrypt wykonuj(cid:5)cy operacj(cid:3) poruszania postaci(cid:5) 139 Analiza skryptu 139 Deklaracje zmiennych 140 Podsumowanie 145 Rozdzia(cid:4) 5. Interakcje 147 Zewn(cid:3)trzne aplikacje modeluj(cid:5)ce 147 Ogólne ustawienia modeli 148 Meshes 148 Normals and Tangents 149 Materials 150 Animations 150 Animation Compression 151 Definiowanie modelu placówki 151 Dodawanie placówki 152 Ustalenie po(cid:2)o(cid:7)enia 153 Obrót 153 Dodanie zderzaczy 154 Dodanie komponentu Rigidbody 156 Dodanie d(cid:8)wi(cid:3)ku 156 Wy(cid:2)(cid:6)czenie automatycznej animacji 156 Kolizje i wyzwalacze 157 Rzucanie promieni 160 Zgubienie klatki 161 Wykrywanie zderzenia z przewidywaniem 162 Otwieranie drzwi placówki 163 Metoda 1. Wykrywanie kolizji 164 Metoda 2. Rzucanie promieni 179 Metoda 3. Wykrywanie kolizji wyzwalaj(cid:6)cej 185 Podsumowanie 189 5 Projektowanie gier w (cid:2)rodowisku Unity 3.x Rozdzia(cid:4) 6. Kolekcja, inwentarz i HUD 191 Tworzenie prefabrykatu ogniwa energetycznego 194 Pobieranie, importowanie i umieszczanie 194 Identyfikacja ogniwa energetycznego 195 Skalowanie i obrót zderzacza 195 Dodawanie komponentu Rigidbody 196 Tworzenie skryptu dla ogniwa energetycznego 197 Dodawanie opcji wyzwalaj(cid:6)cego wykrywania kolizji 198 Zapisywanie obiektu w postaci prefabrykatu 199 Rozrzucanie ogniw energetycznych 200 Inwentarz gracza 200 Zapami(cid:3)tywanie poziomu zasilania 201 Dodawanie funkcji CellPickup() 202 Ograniczenie dost(cid:3)pu do placówki 204 Ograniczenie dost(cid:3)pu do drzwi za pomoc(cid:6) licznika ogniw 204 Wy(cid:2)wietlacz HUD dla ogniwa energetycznego 205 Importowanie ustawie(cid:4) tekstur GUI 206 Tworzenie obiektu GUITexture 206 Umieszczanie tekstury PowerGUI 208 Skrypt do podmiany tekstury 208 Tablice 209 Poinformowanie o otwarciu drzwi 217 Wskazówki dla gracza 221 Pisanie na ekranie za pomoc(cid:6) komponentu GUIText 221 Podsumowanie 227 Rozdzia(cid:4) 7. Konkretyzowanie obiektów i bry(cid:4)y sztywne 229 Wykorzystywanie konkretyzacji 230 Bry(cid:4)y sztywne 231 Si(cid:2)y 232 Komponent Rigidbody 232 Tworzenie minigry 233 Tworzenie prefabrykatu orzecha kokosowego 234 Tworzenie obiektu Launcher 236 Skrypt obs(cid:2)uguj(cid:6)cy rzucanie orzechami kokosowymi 238 Ko(cid:4)cowe procedury sprawdzaj(cid:6)ce 247 Ograniczenia konkretyzacji oraz usuwanie obiektów 248 Dodawanie pomieszczenia przeznaczonego do rzucania kokosami 251 Wygrywanie gry 266 Ko(cid:4)cowe usprawnienia 271 Podsumowanie 274 Rozdzia(cid:4) 8. Systemy cz(cid:5)stek 277 Co to jest system cz(cid:5)stek? 277 Particle Emitter 278 Particle Animator 278 Particle Renderer 279 6 Spis tre(cid:2)ci Definiowanie zadania 280 U(cid:7)yte zasoby 280 Tworzenie sterty ga(cid:2)(cid:3)zi 281 Tworzenie systemów cz(cid:6)stek dla ogniska 283 Rozpalanie ognia 292 Testowanie i weryfikacja dzia(cid:4)ania 302 A wi(cid:3)c jaki mamy problem? 303 Podsumowanie 305 Rozdzia(cid:4) 9. Projektowanie menu 307 Interfejsy i menu 308 Tworzenie sceny 310 Tworzenie menu za pomoc(cid:5) obiektów GUITexture i zdarze(cid:7) myszy 315 Dodawanie przycisku uruchamiania gry 315 Skrypt obs(cid:2)uguj(cid:6)cy przycisk klasy GUITexture 315 Wczytywanie scen 318 Przypisywanie zmiennych publicznych 319 Testowanie przycisku 320 Dodawanie przycisku wy(cid:5)wietlaj(cid:6)cego instrukcje 321 Dodawanie przycisku zako(cid:4)czenia gry 321 Testowanie skryptów przy u(cid:7)yciu polece(cid:4) debugowania 324 Tworzenie menu za pomoc(cid:5) klasy GUI (cid:2)rodowiska Unity oraz kompozycji graficznych 326 Wy(cid:2)(cid:6)czanie obiektów gry 326 Tworzenie menu 326 Podsumowanie 349 Rozdzia(cid:4) 10. Podstawy animacji 351 Sekwencja animacji po wygraniu gry 351 Metoda tworzenia sekwencji animacji 352 Uruchamianie sekwencji wygrania gry 354 Tworzenie komunikatów informuj(cid:6)cych o wygraniu gry 354 Animowanie przy u(cid:7)yciu interpolacji liniowej 356 Tworzenie obiektu obs(cid:2)uguj(cid:6)cego sekwencj(cid:3) zwyci(cid:3)stwa 358 Tworzenie skryptu wygaszania ekranu i u(cid:7)ycie panelu Animation 360 Wczytywanie sekwencji wygrania gry 372 Umieszczanie obiektów GUITexture w warstwach 373 Wyzwanie — zmiana koloru ekranu w scenie Island 374 Podsumowanie 374 Rozdzia(cid:4) 11. Poprawa wydajno(cid:2)ci i ko(cid:7)cowe modyfikacje 375 Ulepszenie terenu i zdefiniowanie po(cid:4)o(cid:6)enia pocz(cid:5)tkowego gracza 376 Ulepszanie terenu 376 Modyfikacja wzgórz i dolin oraz zastosowanie techniki przenikania tekstur 377 Zdefiniowanie w(cid:2)a(cid:5)ciwej (cid:5)cie(cid:7)ki 378 Pocz(cid:5)tkowa lokalizacja postaci gracza 379 7 Projektowanie gier w (cid:2)rodowisku Unity 3.x Optymalizacja wydajno(cid:2)ci 380 P(cid:2)aszczyzny odcinaj(cid:6)ce i mg(cid:2)a 380 Odwzorowywanie (cid:5)wiat(cid:2)a 381 Ko(cid:7)cowe upi(cid:3)kszenia 391 Wulkan! 391 Trajektorie lotu orzechów kokosowych 397 Podsumowanie 400 Rozdzia(cid:4) 12. Budowanie i udost(cid:3)pnianie 401 Opcje budowania 402 Web Player 402 Aplikacje samodzielne dla komputerów PC i Mac 404 Widget aplikacji Dashboard dla OS X 404 Ustawienia budowania 405 Ustawienia gracza 406 Ustawienia Cross-Platform Settings 406 Ustawienia Per-Platform Settings 407 Ustawienia jako(cid:2)ci 411 Ustawienia wej(cid:2)(cid:8) dla gracza 413 Budowanie gry 414 Przystosowanie do wersji sieciowej 414 Pierwsza kompilacja 421 Budowanie dla sieci 423 Udost(cid:3)pnianie swoich prac 428 Udost(cid:3)pnianie prac na portalu Kongregate.com 428 Podsumowanie 429 Rozdzia(cid:4) 13. Testy i dalsze zdobywanie wiedzy 431 Nauka poprzez dzia(cid:4)anie 432 Testowanie i finalizowanie 432 Wykorzystanie u(cid:7)ytkowników do testowania 433 Sposoby zdobywania wiedzy 437 Studiuj ró(cid:7)ne zagadnienia 437 Nie odkrywaj ko(cid:2)a na nowo 438 Je(cid:5)li czego(cid:5) nie wiesz, pytaj! 438 Podsumowanie 439 S(cid:4)owniczek 441 Skorowidz 451 8 Przedmowa Na pocz(cid:5)tku naszej przygody z Unity byli(cid:4)my po prostu trzema programistami tworz(cid:5)cymi niewielk(cid:5), ale ciekaw(cid:5) gr(cid:6) komputerow(cid:5). W tych czasach nie istnia(cid:2) (cid:3)aden interesuj(cid:5)cy silnik gry, którego mo(cid:3)na by(cid:2)oby u(cid:3)ywa(cid:9) bez wysokich op(cid:2)at licencyjnych, wi(cid:6)c zdecydowali(cid:4)my si(cid:6) na stworzenie w(cid:2)asnego. W ko(cid:8)cu stwierdzili(cid:4)my, (cid:3)e bardziej interesuje nas projektowanie dobrych narz(cid:6)dzi ni(cid:3) samych gier. Po zastanowieniu zdali(cid:4)my sobie spraw(cid:6) z tego, i(cid:3) uzupe(cid:2)- nienie tworzonych przez nas narz(cid:6)dzi o prost(cid:5) metod(cid:6) licencjonowania oraz wykorzystanie otwartej spo(cid:2)eczno(cid:4)ci mog(cid:5) przyczyni(cid:9) si(cid:6) do zmiany sposobu konstruowania gier, ich dystry- bucji oraz grania w nie przez ich projektantów. Osi(cid:5)gni(cid:6)cie obecnego poziomu nie by(cid:2)o proste. (cid:10)yli(cid:4)my w niewygodzie, po(cid:4)wi(cid:6)caj(cid:5)c pracy ca(cid:2)e dnie i noce, spo(cid:3)ywaj(cid:5)c stosy kanapek i tworz(cid:5)c strony internetowe dla firm prawniczych. Od jednego z potencjalnych inwestorów (który w ko(cid:8)cu zrezygnowa(cid:2) z transakcji) us(cid:2)yszeli- (cid:4)my kiedy(cid:4), (cid:3)e nasze marzenie o „zdemokratyzowaniu procesu projektowania gier” ma jedn(cid:5) szans(cid:6) na sto, by si(cid:6) urzeczywistni(cid:9). Najwa(cid:3)niejszym celem by(cid:2)o umieszczenie szalenie z(cid:2)o(cid:3)onej technologii w zgrabnym opako- waniu i sprawienie, by by(cid:2)a ona tak prosta w u(cid:3)yciu, jak to tylko mo(cid:3)liwe. W 2009 roku z eks- cytacj(cid:5) przyj(cid:6)li(cid:4)my wydanie pierwszej ksi(cid:5)(cid:3)ki o naszym oprogramowaniu, zatytu(cid:2)owanej Unity Game Development Essentials, która umo(cid:3)liwi(cid:2)a wielu osobom zapoznanie si(cid:6) z syste- mem Unity. Gdy Will przekaza(cid:2) mi informacj(cid:6), (cid:3)e zamierza opublikowa(cid:9) jej uaktualnion(cid:5) wersj(cid:6), by(cid:2)em zaszczycony mo(cid:3)liwo(cid:4)ci(cid:5) napisania do niej wst(cid:6)pu. Will od dawna nale(cid:3)y do spo(cid:2)eczno(cid:4)ci Unity. Spotkali(cid:4)my si(cid:6) w 2007 roku, gdy pracowa(cid:2) w Wielkiej Brytanii na uni- wersytecie w Bournemouth i prowadzi(cid:2) wyk(cid:2)ady dotycz(cid:5)ce projektowania gier przy u(cid:3)yciu systemu Unity. Will by(cid:2) twórc(cid:5) pierwszych poradników wideo dotycz(cid:5)cych Unity, które pozwo- li(cid:2)y wielu pocz(cid:5)tkuj(cid:5)cym u(cid:3)ytkownikom tego systemu zapozna(cid:9) si(cid:6) z dzia(cid:2)aniem wersji 1.5 oraz pó(cid:7)niejszych. Mimo (cid:3)e Will pracuje obecnie w Unity Technologies, wci(cid:5)(cid:3) posiada bardzo du(cid:3)e do(cid:4)wiadczenie zwi(cid:5)zane z nauczaniem i pomaga nam we wspieraniu pocz(cid:5)tkuj(cid:5)cych u(cid:3)ytkowników poprzez tworzenie materia(cid:2)ów szkoleniowych, prowadzenie wyk(cid:2)adów oraz aktywne uczestnictwo w naszej spo(cid:2)eczno(cid:4)ci. Kolejne wydanie ksi(cid:5)(cid:3)ki Projektowanie gier w (cid:2)rodowisku Unity 3.x, które trzymasz w r(cid:6)kach (lub wy(cid:4)wietlasz na ekranie laptopa albo komputera stacjonarnego), zosta(cid:2)o ca(cid:2)kowicie odnowione, jednak(cid:3)e zachowa(cid:2)o wszystkie elementy sk(cid:2)adaj(cid:5)ce si(cid:6) na sukces Projektowanie gier w (cid:2)rodowisku Unity 3.x pierwszego wydania. Ka(cid:3)dy rozdzia(cid:2) ksi(cid:5)(cid:3)ki zosta(cid:2) poszerzony, ulepszony lub uzupe(cid:2)niony. Obecnie zawieraj(cid:5) one opisy wielu opcji, które w tym czasie pojawi(cid:2)y si(cid:6) w (cid:4)rodowisku Unity. Mimo tego ksi(cid:5)(cid:3)ka nie sk(cid:2)ada si(cid:6) jedynie z prezentacji samych nowo(cid:4)ci. Will dok(cid:2)adnie omawia podstawy u(cid:3)ytkowania systemu oraz stosowania skryptów, a nawet próbuje rozwi(cid:5)za(cid:9) odwieczn(cid:5) zagadk(cid:6) Unity: jakiego j(cid:3)zyka nale(cid:4)y u(cid:4)ywa(cid:5): C# czy JavaScript?. Dzi(cid:6)ki omówieniu w ksi(cid:5)(cid:3)ce obu j(cid:6)zyków masz mo(cid:3)liwo(cid:4)(cid:9) wybrania tego, który bardziej Ci odpowiada. Bez wzgl(cid:6)du na to, czy jeste(cid:4) grafikiem, projektantem poziomów, czy po prostu m(cid:2)odym cz(cid:2)owie- kiem wybieraj(cid:5)cym dziedzin(cid:6) tworzenia gier komputerowych jako (cid:4)cie(cid:3)k(cid:6) swojej potencjalnej kariery zawodowej, ksi(cid:5)(cid:3)ka ta jest fascynuj(cid:5)cym poradnikiem pozwalaj(cid:5)cym na zdobycie wiedzy o dzia(cid:2)aniu (cid:4)rodowiska Unity. Rozpoczynaj(cid:5)c od zapoznania si(cid:6) z podstawami grafiki trójwy- miarowej, b(cid:6)dziesz móg(cid:2) nauczy(cid:9) si(cid:6) wszystkiego od samego pocz(cid:5)tku. Nie jest tu wymagana (cid:3)adna wst(cid:6)pna wiedza, a mimo tego ksi(cid:5)(cid:3)ka zachowuje odpowiednie tempo, pozwalaj(cid:5)c Ci na przewracanie jej kartek i tworzenie kodu! Chcia(cid:2)bym osobi(cid:4)cie powita(cid:9) Ci(cid:6) w spo(cid:2)eczno(cid:4)ci Unity. Mam nadziej(cid:6), (cid:3)e b(cid:6)dziesz mia(cid:2) tyle rado(cid:4)ci z przeczytania tej ksi(cid:5)(cid:3)ki, ile my mamy dzi(cid:6)ki pracy w Unity Technologies. David Helgason Prezes i wspó(cid:2)za(cid:2)o(cid:3)yciel Unity Technologies 10 O autorze Will Goldstone od dawna nale(cid:3)y do spo(cid:2)eczno(cid:4)ci Unity. Pracuj(cid:5)c w firmie Unity Technologies, oferuje wsparcie techniczne, zajmuje si(cid:6) zagadnieniami edukacyjnymi, kontaktami ze spo- (cid:2)eczno(cid:4)ci(cid:5) oraz udzielaniem pomocy projektantom. Stopie(cid:8) naukowy zwi(cid:5)zany z kreatywn(cid:5) edukacj(cid:5) oraz wieloletnie do(cid:4)wiadczenie w pracy jako wyk(cid:2)adowca wy(cid:3)szej uczelni pomog(cid:2)y mu w napisaniu pierwszej na rynku ksi(cid:5)(cid:3)ki dotycz(cid:5)cej (cid:4)rodowiska Unity, zatytu(cid:2)owanej Unity Game Development Essentials, a tak(cid:3)e w stworzeniu odpowiednich poradników wideo. Wyko- rzystuj(cid:5)c swoj(cid:5) stron(cid:6) internetow(cid:5) http://www.unity3dstudent.com, Will zaprasza codziennie nowych u(cid:3)ytkowników do rozwijaj(cid:5)cej si(cid:6) spo(cid:2)eczno(cid:4)ci projektantów gier. Nieregularnie publi- kuje tak(cid:3)e swoje artyku(cid:2)y na stronie http://willgoldstone.com. Oto osoby, którym chcia(cid:2)bym podzi(cid:3)kowa(cid:4) za wsparcie przy tworzeniu niniejszej ksi(cid:5)(cid:6)ki, jak równie(cid:6) za to, (cid:6)e by(cid:2)y po prostu wspania(cid:2)e: Teck Lee Tan (@LoTeKk) (podzi(cid:3)kowanie za stworzenie zasobów graficz- nych); wszyscy wojownicy ninja z Unity Technologies: Rune Skovbo Johansen, Nicholas Francis (@unitynich), David Helgason (@davidhelgason), Joachim Ante, Graham Dunnett, Andy Brammall (@andybrammall), Andy Stark, Charles Hinshaw, Roald Hoyer-Hansen (@brokenpoly), Carl Callewaert (@carlunity), Chris Pope (@CreativeChris1), Dave Shorter, Mark Harkness (@IAmRoflHarris), Ricardo Arango, Rob Fairchild (@robfairchild), Olly Nicholson, Cathy Yates, Adam Buckner, Richard Sykes, Emil Johansen (@AngryAnt), Ethan Vosburgh, Joe Robins (@JoeRobins)… i wiele innych wspania(cid:2)ych osób, których nie mog(cid:2)em tu wymieni(cid:4)! Na li(cid:7)cie musz(cid:5) si(cid:3) tak(cid:6)e pojawi(cid:4) moi przyjaciele, którzy s(cid:5) zwi(cid:5)zani z Unity: Bob Berkebile (@pixelpla- cement), Tom Jackson (@quickfingerz), Thomas Pasieka (@thomaspasieka), Cat Burton (@catburton), Mike Renwick (@runonthespot), Mark Backler, Russ Morris (@therussmorris), Jasper Stocker (@jas- perstocker), Paul Tondeur (@paultondeur), David Fugère-Lamarre, Benjamin Lee, Steffen Franz, Aaron Grove, Bastien Fontaine. Nie mog(cid:3) oczywi(cid:7)cie zapomnie(cid:4) o Mamie, Tacie, Rach, Penny i pozosta(cid:2)ych przyjacio(cid:2)ach.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.