Základy 3D enginu Unity - projekt Roll a Ball

Roll a Ball – nastavenie prostredia

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é.

Please login to get access to the quiz
Roll a Ball – nastavenie kamery (Predošlá lekcia)
(Ďalšia lekcia) Roll a Ball – zbieranie kociek
Späť na Základy 3D enginu Unity – projekt Roll a Ball

No Comments

Comments are closed.

Lektor
Kolektív pracovníkov ÚAMT
Rola : Skupina lektorov
  • Website : http://uamt.fei.stuba.sk
  • Prax : Viacročné skúsenosti
  • Špecialista na oblasť : Viaceré oblasti mechatroniky
Čitať ďalej