DETECCIÓN DE INPUTS

Seguramente en todos los juegos que hagamos queramos detectar el input del usuario, ya sea por teclas, touch de un dispositivo o desde un joystick. Unity cuenta con un script que nos facilita todo ese trabajo en gran manera (aunque nunca vamos a estar conformes y siempre vamos a querer hacer el nuestro). Ese script se llama Input (casualmente como lo que detecta… Ja). Y contiene todo un conjunto de funciones que podemos utilizar. Vamos a empezar con un ejemplo simple, y hagamos que nuestra nave se mueva cuando presiono una tecla, en lugar de moverse continuamente:

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hero : MonoBehaviour

 

 

De esta manera nuestra nave debería moverse únicamente al presionar la flecha derecha, caso contrario debería quedarse quieto. Ahora… Un pequeño ejercicio rápido, pero que puede servir para acostumbrarse a estas estructuras:

Hagan que nuestra nave se mueva en todas las direcciones, tocando cada tecla correspondiente.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hero : MonoBehaviour

 

 

Como verán… Esta solución lo que hace es que se pueda mover SOLAMENTE en una dirección. Pero… ¿Qué pasaría si quiero moverme en diagonal? ¿Pueden resolverlo? Intenten!!

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hero : MonoBehaviour

 

 

Pueden ver cuál era el problema? Básicamente el else if estaba haciendo que se ejecutara una sentencia O LA OTRA, pero no AMBAS. Así que con ese pequeño fix ya podemos corregir eso.