Menu
CoddyTech

Botones con nombre

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 21 de 85.

Además de las teclas, Unity tiene botones: nombres que aparecen en el Input Manager (Edit, Project Settings, Input Manager), cada uno asociado a una o más teclas. Input.GetButtonDown("Fire1") pregunta por el nombre, no por una tecla. Un proyecto nuevo tiene estos:

  • "Jump": barra espaciadora
  • "Fire1": Ctrl izquierdo o el botón izquierdo del ratón
  • "Fire2": Alt izquierdo o el botón derecho del ratón
  • "Submit" y "Cancel": Enter y Escape

Los botones del mando están asociados a los mismos nombres, y las teclas se pueden cambiar en el Input Manager sin modificar el código. GetButton, GetButtonDown y GetButtonUp funcionan como GetKey, GetKeyDown y GetKeyUp. Este bláster registra un disparo por cada pulsación de Ctrl o cada clic:

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

El nombre es una cadena, así que un nombre mal escrito se compila. Unity lo busca cuando se ejecuta la línea y, si ningún botón tiene ese nombre, lanza una excepción en cada fotograma: ArgumentException: Input Button Fier1 is not setup. Cuando veas ese mensaje, compara el nombre de tu código con la lista del Input Manager.

challenge icon

Desafío

Fácil

Arregla el salto de la rana y haz que vuelva a aterrizar.

  1. Pulsa «Jugar»: la Consola muestra un error sobre el botón "Jumpp". Cámbialo por "Jump".
  2. Añade un segundo if con Input.GetButtonUp("Jump") que reste new Vector3(0, hop, 0) de transform.position.

Pulsa «Jugar», mantén pulsada la barra espaciadora y suéltala: la rana salta hacia arriba y después aterriza. Luego, pulsa «Comprobar».

Pruébalo tú mismo

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}

Todas las lecciones de Fundamentos de scripting en Unity

Practica por tu cuenta: Playground de Unity