Menu
CoddyTech

Benannte Tasten

Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 14 von 67.

Neben Tasten gibt es in Unity Schaltflächen: Namen, die im Input Manager (Edit, Project Settings, Input Manager) aufgeführt sind und jeweils einer oder mehreren Tasten zugeordnet sind. Input.GetButtonDown("Fire1") fragt nach dem Namen, nicht nach einer Taste. Ein neues Projekt enthält diese:

  • "Jump": Leertaste
  • "Fire1": linke Strg-Taste oder linke Maustaste
  • "Fire2": linke Alt-Taste oder rechte Maustaste
  • "Submit" und "Cancel": Eingabetaste und Esc

Gamepad-Tasten sind denselben Namen zugeordnet, und die Tasten lassen sich im Input Manager ändern, ohne den Code anzufassen. GetButton, GetButtonDown und GetButtonUp funktionieren wie GetKey, GetKeyDown und GetKeyUp. Dieser Blaster protokolliert für jedes Drücken von Strg oder jeden Klick einen Schuss:

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

Der Name ist eine Zeichenfolge, daher wird ein falsch geschriebener Name trotzdem kompiliert. Unity sucht ihn nach dem Ausführen der Zeile nach. Wenn keine Schaltfläche diesen Namen hat, wird in jedem Frame eine Ausnahme ausgelöst: ArgumentException: Input Button Fier1 is not setup. Wenn du diese Meldung siehst, vergleiche den Namen in deinem Code mit der Liste im Input Manager.

challenge icon

Aufgabe

Einfach

Der Frosch hüpft, solange die Sprungtaste gedrückt gehalten wird: Beim Drücken von Jump wird er einmal um hop Einheiten angehoben, und beim Loslassen von Jump wird er um denselben Betrag wieder abgesenkt. Der Startercode hebt ihn bereits an, aber sobald das Spiel läuft, wird ein Fehler ausgelöst.

Drücke Play und lies den Fehler in der Console. Behebe ihn, füge das Landen beim Loslassen hinzu und drücke dann Check.

Probier es selbst

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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen des Scripting in Unity