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.
No Comments