Pierwsze krki Utwrzyć nwy prjekt (menu File - > New Prject - > zakładka Create New Prject). Rzpakwać katalg z materiałami. Stwrzenie terenu. (3pkt) D nweg prjektu Unity3d utwórz teren (menu Terrain - > Create Terrain). Ustaw szerkść i długść terenu na 1000, wyskść na 200 (menu Terrain - > Set Reslutin). Z menu Terrain wybierz pcję Flatten Heightmap i ustaw wyskść na 50. W knie Hierarchy zaznacz element Terrain. W knie Inspectr pjawią się pcje edycji terenu. Na widcznym brazku zaznaczna jest funkcja d pdnszenia lub bniżania terenu. W tym celu wystarczy użyć wybraneg pędzla w knie sceny. Ddatkw mżna ustawić rzmiar pędzla raz jeg kształt. W celu bniżenia terenu należy trzymać wciśnięty klawisz shift. Inne funkcjnalnści edytra t m.in. wyrównywanie terenu d danej wyskści i wygładzanie. Używając funkcji bniżania terenu stwórz z ddaneg wcześniej terenu wyspę. Efekt mże wyglądać tak, jak na brazku:
Przy twrzeniu sceny pmcna jest mżliwść zmiany widku. Mżna t rbić za pmcą praweg i śrdkweg klawisza myszki (brót, przybliżenie lub przesunięcie) lub za pmcą widcznych w prawym górnym rgu sceny si. (brazek) Przy pmcy narzędzi d pdwyższania ddaj góry. Efekt mże wyglądać tak jak na brazku: Z menu Assets wybierz pcję Imprt Package i zaznacz Terrain Assets.
W knie inspektra zaznacz pcję d malwania tekstur (ikna pędzla). Kliknij w przycisk Edit Textures, następnie Add i ddaj klejn tekstury: Gd Dirt, Grass & Rck, Grass (Hill). Oteksturuj teren. Efekt mże wyglądać następując: Pdbnie jak wcześniej zaimprtuj wdę (Water (Basic)). Z kna Prject wybierz Water (Basic) - > Daylight simple water i przeciagnij d sceny. W knie inspektra ustaw dpwiednie wartści skali i płżenia. Wynik pwinien wyglądać pdbnie jak na brazku: Z katalgu z materiałami skpiuj katalg Interstellar d katalgu Assets w prjekcie (za pmcą eksplratra plików Windws). W knie prject znajdź zaimprtwane brazki i dla każdeg w knie inspektra ustaw Wrap Mde na Clamp. Utwórz nwy Asset typu Material (menu Assets - > Create - > Material). Nazwij g cubemap. W knie inspektra ustaw typ shadera na RenderFX- >SkyBx.
Ddaj klejn wcześniej zaimprtwane tekstury d utwrzneg Assetu ( tak, aby ustawienie tekstur się zgadzał). Aby ustawić nw utwrzny Asset jak cube mapę, wejdź d ustawień renderwania (menu Edit - > Render Settings) i w plu skybx material ustaw ddany wcześniej materiał. Jeżeli wszystk zstał ustawine pprawnie nwe tł będzie ciągłe, bez żadnych widcznych przerw między teksturami. Zaimprtuj (Imprt Package) nazwie Light Flares. Ddaj d sceny światł kierunkwe (GameObject- >Create Other- >Directinal Light). W knie inspektra ustaw Flare - > Sun. Ustaw pzycje i rtacje światła, aby świetlał wyspę i był w miejscu, gdzie na teksturze cube mapy znajduje się słńce. Zaimprtuj paczkę nazwie Character Cntrller. W knie Prject z Standard Assets wybierz First Persn Cntrller i przeciągnij g d kna Hierarchy. W knie Hierarchy skasuj istniejący wcześniej biekt Main Camera. Za pmcą atrybutów Psitin w knie Inspectr lub za pmcą si kamery w knie sceny umieść kntrlera w dpwiednim miejscu na wyspie.
Wciśnij iknę Play i przetestuj sterwanie. P skierwaniu kamery na słńce pwinien być widczny błysk. Gdy w knie Hierarchy zaznaczny jest First Persn Cntrller, pcje inspektra pzwalają na ustawienie parametrów ruchu, skakania i grawitacji. Ustaw tag cntrllera na Tag - > Player. Zaimprtuj (Assets - > Imprt Custm Package) klejn paczki drzewa, dmek, huse2, chapel. Drzewa na planszy mżna umieścić klikając w knie Hierarchy na teren i w inspektrze wybierając narzędzie Place Trees. Należy ddać dpwiedni mdel drzewa (Edit Trees - > Add Tree). Analgicznie użyj narzędzia Place plants, stnes and ther small filage aby ddać trawę d sceny.następnie pprzeciągaj mdele budynków na dpwiednie miejsca na planszy. Ppraw ich rzmieszczenie i wygląd za pmcą atrybutów Rtatin, Psitin i Scale. UWAGA DO WSZYSTKICH ZADAŃ: jeśli któryś z imprtwanych mdeli ma p ddaniu d sceny za małą skalę, należy wybrać ten mdel w knie Prject, dbrać dpwiednią wartść Scale Factr, całść zatwierdzić przyciskiem Apply. Przykładwy efekt: Ddanie brni. (2pkt) Zaimprtuj (custm package) paczkę nazwie Minigun, następnie paczkę nazwie RcketLauncher. Przeciągnij prefaba (iknka sześcianu) minigun z kna Prject d kna Hierarchy tak, aby biekt był dzieckiem Main Camera w hierarchii First Persn Cntrller. Ustaw pzycję i rtacje brni, tak, aby pdczas gry widać był trzymaną brń. Pdbnie zrób z biektem rcketlauncher.
Dla bu brni w knie inspektra wyłącz biekt MeshCllider. Ddaj nwy skrypt C# (menu Assets) i nazwij g Player. Pdłącz g d biektu Main Camera. W metdzie Start ustaw pczątkwą widcznść brni. W metdzie Update napisz bsługę przełączania brni. W tym celu mżesz wykrzystać metdy: bl Input.GetKeyDwn(string klawisz) sprawdza czy dany klawisz jest wciśnięty dwłanie d własneg biektu Transfrm następuje pprzez zmienną lkalną transfrm. Klasa Transfrm psiada ple childcunt raz metdę GetChild(int index), która zwraca inne biekty klasy Transfrm, płżne niżej w hierarchii. Odwłanie d dłączneg biektu GameObject następuje pprzez zmienną gameobject. Aby ustawić stan aktywny lub nieaktywny biektu GameObject, należy psłużyć się metdą SetActiveRecursively(bl). Przełączanie pwinn nastąpić p wciśnięciu klawisza np. 1 lub 2, i tylk jedna brń pwinna być widczna. Zaimprtuj (imprt package - > particles) z układami cząsteczkwymi. W knie Prject w flderze Standard Assets znajdź prefab nazwie Sparks i przeciągnij g tak, aby znalazł się w knie Hierarchy jak dzieck minigun.
Z katalgu z materiałami zaimprtuj nwy asset nazwie Minigun.cs. Przeciągnij g d biektu minigun w knie Hierarchy. Zapznaj się ze skryptem. W miejscu wskazanym przez kmentarz w metdzie Fire należy dpisać bsługę trafienia pciskiem dany biekt w grze. Najprściej zrbić t metdą Physics.Raycast(Vectr3 psitin, Vectr3 directin, ut RaycastHit hit, flat range). Lkalna zmienna transfrm zawiera dane płżeniu i rtacji biektu 1 Za pzycję przyjąć aktualne płżenie brni, a jak wektr directin kierunek, w który strzelamy (czyli naprzód). Funkcja ta przyjmuje wektry w układzie świata. Transfrmacji pmiędzy wektrem w lkalnym układzie współrzędnych (Vectr3.frward), a układem świata, mżna dknać za pmcą metdy TransfrmDirectin biektu transfrm. Ddatkw należy umieścić układ cząsteczkwy (iskry) w miejscu, w które trafiliśmy i brócić g prstpadle d trafinej płaszczyzny. Metda Physics.Raycast w parametrze hit umieszcza dane ptencjalnym trafieniu. Miejsce trafienia mżemy uzyskać z pla pint biektu RaycastHit, natmiast wektr nrmalny z pla nrmal. P każdym strzale w miejscu trafienia pwinny pkazywać się iskry. Aby bsłużyć trafienie biektów fizycznych typu RigidBdy, należy psłużyć się metdą rigidbdy.addfrceatpsitin(vectr3 frce, Vectr3 pint). Zadawanie brażeń będzie bsługiwała funkcja ApplyDamage. Aby ją wywłać w trafinym biekcie należy użyc funkcji BradcastMessage 2. Przykładwa bsługa trafienia: Zaimprtuj (imprt custm package) paczkę nazwie muzzleflash. Przeciągnij biekt, jak dzieck minigun. Ustaw teksturę na dwlną teksturę z gniem i ustaw typ shadera na 1 http://unity3d.cm/supprt/dcumentatin/scriptreference/transfrm 2 http://unity3d.cm/supprt/dcumentatin/scriptreference/cmpnent.bradcastmessage.html
Particles- >Additive. P kliknięciu w knie Hierarchy na minigun, w knie inspektra ustaw zmienną Błysk na ddany biekt muzzleflash. Ustaw dpwiednie płżenie, aby błysk był widczny pdczas strzelania. Aby mżliwe był strzelanie, w skrypcie Player.cs należy p wciśnięciu daneg przycisku wysłać wiadmść nazwie Fire. Przykład: Zaimprtuj paczkę Pcisk. Ddaj nwy skrypt d brni RcketLauncher. Pdbnie jak w przypadku Minigun stwórz metdę Fire, która będzie dpwiedzialna za wystrzeliwanie rakiet. Zadbaj t, aby strzelanie był mżliwe nie częściej niż raz na sekundę (mżna psłużyć się klasą Time 3 ). Aby utwrzyć nwy pcisk ddaj publiczne ple typu RigidBdy reprezentujące rakietę. Gdy w edytrze zaznaczny jest skrypt, w knie inspektra pwinn być widczne utwrzne ple. Przeciągnij d nieg prefab Pcisk. Twrzenie pcisku p strzale należy wyknać metdą Instantiate 4. Rakiecie należy nadać pczątkwą prędkść (ple velcity). Upewnij się, że Prefab Pcisk płączny jest ze skryptem Pcisk.cs, a prefab Wybuch z Pciskiem. Aby ignrwać klizję między brnią a wystrzelną rakietą należy użyć metdy Physics.IgnreCllisin 5 (cllider rakiety i cllider gracza, który trzymamy z transfrm.rt.cllider). Przetestuj strzelanie rakietami - gdy rakieta uderzy w biekt pwinna nastąpić eksplzja. 3 http://unity3d.cm/supprt/dcumentatin/scriptreference/time- time.html 4 http://unity3d.cm/supprt/dcumentatin/scriptreference/object.instantiate.html 5 http://unity3d.cm/supprt/dcumentatin/scriptreference/physics.ignrecllisin
Wybuchające beczki. (zadanie ddatkwe) Zaimprtuj paczkę nazwie beczka. Ddaj d niej kmpnent typu rigid bdy i bx cllider. Utwórz skrypt, który w metdzie ApplyDamage() będzie dpwiadał za zliczanie zdrwia beczki. Jeżeli spadnie d zera, utwórz eksplzję jak przykład użyj skryptu pcisk.cs. P wybuchu beczka przestaje zliczać brażenia.