Menu
CoddyTech

Przyciski o nazwach

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 14 z 67.

Oprócz klawiszy Unity ma też przyciski: nazwy wymienione w Input Manager (Edit, Project Settings, Input Manager), z których każda jest powiązana z jednym lub większą liczbą klawiszy. Input.GetButtonDown("Fire1") sprawdza nazwę, a nie klawisz. Nowy projekt zawiera następujące nazwy:

  • "Jump": spacja
  • "Fire1": lewy Ctrl lub lewy przycisk myszy
  • "Fire2": lewy Alt lub prawy przycisk myszy
  • "Submit" i "Cancel": Enter i Escape

Przyciski gamepada są powiązane z tymi samymi nazwami, a klawisze można zmieniać w Input Manager bez modyfikowania kodu. GetButton, GetButtonDown i GetButtonUp działają podobnie jak GetKey, GetKeyDown i GetKeyUp. Ten blaster rejestruje strzał przy każdym naciśnięciu Ctrl lub kliknięciu:

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

Nazwa jest ciągiem znaków, więc błędnie wpisana nazwa przejdzie kompilację. Unity wyszukuje ją w chwili wykonania tej linii, a jeśli żaden przycisk nie ma takiej nazwy, zgłasza wyjątek w każdej klatce: ArgumentException: Input Button Fier1 is not setup. Gdy zobaczysz ten komunikat, porównaj nazwę w kodzie z listą w Input Manager.

challenge icon

Wyzwanie

Łatwy

Żaba podskakuje, gdy przycisk Jump jest wciśnięty: naciśnięcie Jump unosi ją raz o hop jednostek, a zwolnienie Jump opuszcza ją z powrotem o tę samą wartość. Kod początkowy już ją unosi, ale powoduje błąd, gdy tylko uruchomisz grę.

Naciśnij Play i przeczytaj błąd w konsoli. Napraw go, dodaj lądowanie po zwolnieniu przycisku, a następnie naciśnij Check.

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy skryptów w Unity