Menu
CoddyTech

Botones con nombre

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 14 de 67.

Además de teclas, Unity tiene botones: nombres que aparecen en 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 botón izquierdo del ratón
  • "Fire2": Alt izquierdo o botón derecho del ratón
  • "Submit" y "Cancel": Intro y Escape

Los botones del mando están asociados a los mismos nombres, y las teclas se pueden cambiar en Input Manager sin tocar 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 clic:

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

El nombre es una cadena, así que un nombre mal escrito 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 de Input Manager.

challenge icon

Desafío

Fácil

La rana salta mientras se mantiene pulsado el botón Jump: al pulsar Jump, se eleva hop unidades una vez y, al soltar Jump, vuelve a bajar la misma cantidad. El código inicial ya hace que se eleve, pero provoca un error en cuanto se ejecuta el juego.

Pulsa Play y lee el error en la consola. Corrígelo, añade el aterrizaje al soltar el botón y, después, pulsa Check.

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);
        }
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos de scripting en Unity