Input je sistem u Unityju koji koristimo kako bi pristupili unosu korisnika.
Prilikom deklariranja tipke prvo slovo riječi određene tipke je veliko (K, Escape, LeftControl).
GetKey će biti istinit dok držimo tipku pritisnutom.
GetKeyDown će biti istinit samo u trenutku kada pritisnemo tipku.
GetKeyUp će biti istinit u trenutku kada otpustimo tipku.
Input.GetKey(KeyCode.TipkaKojuPritiščemo);
Input.GetKeyDown(KeyCode.TipkaKojuPritiščemo);
Input.GetKeyUp(KeyCode.TipkaKojuPritiščemo);
U sljedećem primjeru provjeravamo jesmo li stisnuli tipku Space. Ako jesmo objekt1 će se uključiti ako je bio isključen i obrnuto.
Držanjem tipke A povećat ćemo int x za 1
Kada otpustimo tipku S oduzet ćemo float decx za 1.5.
public GameObject objekt1;
public int x;
public float decx;
void Update()
{
//provjerava je li objekt aktiviran. Ako je onda ga deaktivira i suprotno
if (Input.GetKeyDown(KeyCode.Space))
{
if (objekt1 != null)
{
objekt1.SetActive(!objekt1.activeSelf);
}
}
//držanjem tipke A povećavamo x za 1
if(Input.GetKey(KeyCode.A))
{
x++;
}
//otpuštanjem tipke S oduzet ćemo decx za 1.5
if(Input.GetKeyUp(KeyCode.S))
{
decx -= 1.5f;
}
}
Unosi za miš se pišu isto kao i unosi za tipkovnicu. Jedina je razlika što nećemo za lijevu tipku miša napisati MouseLeft nego Mouse0.
Ispod su navedeni svi primjeri za unos miša.
Input.GetKey(KeyCode.Mouse0); //lijevi klik miša
Input.GetKey(KeyCode.Mouse1); //desni klik miša
Input.GetKey(KeyCode.Mouse2); //srednji klik miša
Sve nakon Mouse2 su ostale tipke na mišu.
Unos s GetAxis se koristi za unos koji postavljamo unutar unity postavki za input.
Koristi ga se tako da se unutar () napiše pod nazivnicima točan naziv unusa.
U sljedećem primjeru pokazati ćemo kako radi Horizontal i Vertical. One su automatski postavljene unutar Unityja.
Horizontal radi tako kad držimo stisnutu tipku D, float x će poprimiti vrijednost 1. Ako držimo stisnutu tipku A poprimiti će vrijednost -1. Ako ne držimo stisnuto ništa onda će poprimiti vrijednost 0.
Vertical radi tako kad držimo stisnutu tipku W, float z će poprimiti vrijednost 1. Ako držimo stisnutu tipku S poprimiti će vrijednost -1. Ako ne držimo stisnuto ništa onda će poprimiti vrijednost 0.
U ovom primjeru varijable x i z su float iz razloga što vrijednost neće odmah otići s 0 na 1 već će postepeno ići s jednog na drugi broj(0, 0.01, 0.02...1) samo što se to desi iznimno brzo.
void Update()
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Debug.Log(x);
Debug.Log(z);
}