Unity: Input.GetKey vs Input.GetButton

Cuando comencé con unity (hace 1 año) siempre me preguntaba cuál de estos dos es mejor si Input.GetKey o Input.GetButton, así que creé este blog para explicar de la manera más fácil cómo funciona cada uno y darte una ejemplo de cada uno.

1. Similaridades entre Input.GetKey e Input.GetButton

En esencia ambos son muy similares, si vas al manual de Unity, encontrarás las siguientes similitudes entre estas dos opciones :

  • Las dos son Static bool
  • Ambas deben ser llamadas en la función Update
  • Solo deben ser usadas para invocar eventos similares a acciones
  • Tanto Input.GetKey e Input.GetButton tienen tres variantes

En la siguiente sección encontrarás las variantes de cada una y su funcionamiento. Además un pequeño script ejemplo de como se usan.

2.Input.GetKey

Esto requiere especificar una tecla de su teclado, puede ser espacio (space), arriba (up), abajo (down), … lo que quiera.
Para Input.GetKey, las variantes son Input.GetKey, Input.GetKeyDown y Input.GetKeyUp.

Input.GetKey: En este caso, cuando presiona la tecla, regresa true y continúa haciendo esto mientras presionas la tecla
Input.GetKeyDown: Solo se hace true una vez y esto es en el primer frame después de presionar la tecla
Input.GetKeyUp: para este caso, solo se hace true una vez y esto es en el primer frame después de soltar la tecla

3. Input.GetButton

Esto requiere especificar un botón desde project settings>input manager, el nombre de su botón lo establece usted, podría llamarlo disparar1, disparar2, agua, salto, … .
Para Input.GetButton, las variantes son Input.GetButton, Input.GetButtonDown y Input.GetButtonUp.

Input.GetButton: En este caso, cuando presiona el botón, se vuelve true y continúa haciendo esto mientras presiona la tecla
Input.GetButtonDown: solo se hace true una vez y esto es en el primer frame después de presionar el botón
Input.GetButtonUp: para este caso, solo se hace true una vez y esto es en el primer frame después de soltar el botón

4. Diferencias entre Input.GetKey e Input.GetButton

El verdadero problema con Input.GetKey es que se debe tener cuidado al escribir el nombre de la tecla en el script.

Y la ventaja de Input.GetButton is que puedes establecer el nombre de tu button en el edit>projecct settings> input manager,

Si te ha resultado útil este blog déjanos un comentario y síguenos en nuestro Instagram @tortugamedev y Twitter @Totuas2.

Y no olvides revisar nuestro otros blogs acerca de Unity!!

Leave a Comment

Your email address will not be published.