34. Ďalším krokom je tvorba stien, ktoré budú obklopovať našu hernú plochu. Vytvoríme prázdny objekt, ktorý bude slúžiť ako priečinok pre naše 4 steny. Menu – GameObject – Create Empty. Tento objekt premenujeme na Walls. Resetujeme súradnice objektu (Inspector – Transform – ozubené koliesko - Reset).
35. Vložíme nový objekt – Menu – GameObject – 3D Object – Cube. Nazveme ho WestWall, resetujeme jeho súradnice a nastavíme ako podriadený objekt objektu Walls. Tomuto objektu nastavíme Scale (Inspector – Transform - Scale) na hodnoty 0.5, 2, 20.5. Jeho pozíciu nastavíme na X-ovú hodnotu -10.
36. Objekt West Wall duplikujeme (Menu – Edit – Duplicate alebo Ctrl+D). Nazveme ho East Wall. Jeho pozíciu nastavíme na X-ovú hodnotu +10.
37. Objekt East Wall duplikujeme. Nazveme ho North Wall. Jeho pozíciu nastavíme na X-ovú hodnotu 0 a Z-ovú na 10. Tomuto objektu nastavíme Scale (Inspector – Transform - Scale) na hodnoty 20, 2, 0.5.
38. Objekt North Wall duplikujeme. Nazvime ho South Wall. Jeho pozíciu nastavíme na Z-ovú hodnotu na -10.
39. Spustíme herný mód a steny otestujeme.
40. Ideme vytvoriť objekty, ktoré bude gulička zbierať. Vytvoríme novú kocku (Menu – GameObject – 3D Object – Cube), ktorú pomenujeme PickUp. Resetujeme jej súradnice. Následne súradnicu Y nastavíme na 0.5. Scale nastavíme tiež na 0.5 0.5 0.5.
41. Nastavíme rotáciu kocky na 45 45 45.
42. Aby sme kocku videli, urobíme guličku dočasne neviditeľnou. V hierarchii projektu vyberieme objekt Player a dáme preč fajku, ktorá je hneď pod nápisom Inspector.
43. Našu kocku chceme roztočiť, pridáme jej teda skript. V Inspectore vyberieme Add Component – New Script. Tento skript nazveme Rotator. Nezabudnime tento skript presunút do priečinka Scripts. Skript vyzerá takto (http://pastebin.com/b3hUMSmK):
using UnityEngine;
using System.Collections;
public class Rotator : MonoBehaviour {
void Update ()
{
transform.Rotate (new Vector3 (15, 30, 45) * Time.deltaTime);
}
}
Skript je veľmi jednoduchý a pochopiteľný. Time.deltaTime používame kvôli tomu, aby rotácia bola plynulá a nezávislá od frameratu, teda závislá iba na čase. Time.deltaTime je čas, ktorý bol potrebný pre dokončenie posledného framu. Dobrá definícia z príručky: „If you add or subtract to a value every frame chances are you should multiply with Time.deltaTime. When you multiply with Time.deltaTime you essentially express: I want to move this object 10 meters per second instead of 10 meters per frame.“
44. Spustíme hru a môžeme vidieť, že kocka sa točí.
45. Keďže budeme potrebovať takýchto objektov viac, je vhodné urobiť si z takéhoto objektu Prefab (template, šablónu...). Prefab môžeme použiť v projekte viackrát. Výhodou je, že keď následne zmeníme vlastnosti prefabu, zmenia sa vlastnosti všetkých takýchto objektov (všetkých inštancií) v projekte.
46. V priečinkovej štruktúre projektu vytvoríme priečinok Prefabs. Z hierarchie projektu potiahneme objekt Pick Up do priečinka Prefabs v priečinkovej štruktúre projektu.
47. V hierarchii projektu vytvoríme nový prázdny objekt (Menu – GameObject – Create Empty), ktorý nazveme Pick Ups. Objekt Pick Up presunieme do tohto nového prázdneho objektu – bude to podriadený objekt.
48. Kliknutím vyberieme objekt Pick Up. V náhľade (okno Scene) klikneme na zelenú šípku s Y osou a pomocou kolieska myši odzoomujeme pohľad, aby sme videli celú hernú plochu. Nastavíme globálny mód, aby sme mohli kocku presúvať vzhľadom na základné súradnice nami vytvorenej scény a nie súradnice kocky, ktoré sú momentálne zrotované:
49. Ak nám v nastavenom móde svieti „Global“, môžeme pomocou zeleného štvorca (viď. obrázok) presúvať objekt tak, aby sa nemenila jeho Y-ová súradnica. Presunieme ho približne na pozíciu 0.15 0.5 5.37.
50. Pomocou duplikovania (Ctrl+D) vytvoríme ďalšie kocky, ktoré rozmiestnime približne do takéto tvaru. Spolu ich musí byť 12:
51. Teraz môžeme zviditeľniť našu guličku. V hierarchii projektu vyberieme objekt Player a dáme naspäť fajku, ktorá je hneď pod nápisom Inspector.
52. Spustíme hru a skontrolujeme, či sa všetky kocky krútia.
53. Je vhodné kocky viac zvýrazniť, napríklad prefarbiť na žltú farbu. Otvoríme priečinok Materials a duplikujeme materiál Background. Nový materiál nazveme Pick Up. Zmeníme farbu tohto materiálu na R=255, G=255, B=0. Alebo na inú výraznú farbu.
54. V priečinkovej štruktúre projektu potiahneme materiál Pick Up na prefab Pick Up. Kocky by mali byť teraz žlté.
No Comments