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

Roll a Ball – nastavenie kamery

27. Ďalšou úlohou je nastavenie kamery. V hierarchii projektu vyberieme objekt Main Camera. V Inspectore nastavíme jej Y pozíciu na 10. Rotáciu X na 45.

28. Objekt Main Camera nastavíme ako podradený objekt objektu Player, a to potiahnutím objektu Main Camera na objekt Player. Tým docielime to, že sa bude kamera hýbať spolu s guličkou.

29. Spustíme hru. Pri hraní vidíme, že kamera rotuje spolu s guličkou, čo nie je žiaduce. Objekt Main Camera je naozaj podriadený objektu Player. V hierarchii objektu ho potiahneme tak, aby sme tento podriadený vzťah zrušili a dostali pôvodný stav.

30. Žiadané správanie nastavíme pomocou skriptu. Objektu Main Camera vytvoríme nový komponent – skript nazvaný CameraController. Tento skript presunieme do priečinka Script a skript otvoríme. Vložíme nasledovný kód (http://pastebin.com/P2L7ayzf):
using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour {
public GameObject player;
private Vector3 offset;
void Start ()
{
offset = transform.position - player.transform.position;
}
void LateUpdate ()
{
transform.position = player.transform.position + offset;
}
}

Pomocou tohto skriptu nastavujeme správanie kamery ručne a nededí automaticky správanie guličky. Public premenná typu GameObject bude premenná, ktorá bude obsahovať referenciu na herný objekt – guličku.

Do premennej offset (typu Vector3) sa uloží vzdialenosť (všetky 3 súradnice) kamery od guličky, ktorá je platná pri spustení aplikácie. „transform.position“ značí pozíciu herného objektu, ku ktorému je skript priradený – v tomto prípade pozícia kamery. „player.transform.position“ značí pozíciu herného objektu v premennej player, čo bude naša gulička.

Funkcia LateUpdate sa spustí až po funkciách Update, a to počas každého framu behu aplikácie. Tu sa nastaví pozícia kamery, ktorá pozostáva zo súčtu pozície guličky a prednastaveného offsetu (vzdialenosti kamery a guličky na začiatku behu aplikácie). Offset vidíme aj tu:

31. Skript uložíme a vrátime sa do Unity editora.

32. Otvoríme si objekt Main Camera. V Inspectore nájdeme Camera Controller (Script). Do kolónky Player potiahneme z hierarchie objektu našu guličku – objekt Player. Týmto sme premennej public premennej v skripte priradili referenciu na tento objekt.

33. Spustíme hru pomocou grafického tlačidla Play a vidíme, že všetko je v poriadku.

Please login to get access to the quiz
Roll a Ball – úvod a prvý skript (Predošlá lekcia)
(Ďalšia lekcia) Roll a Ball – nastavenie prostredia
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