Menu
CoddyTech

Przyciski z nazwami

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

Oprócz klawiszy Unity ma też przyciski: nazwy wymienione w Input Manager (Edit, Project Settings, Input Manager), z których każda jest przypisana do jednego lub kilku klawiszy. Input.GetButtonDown("Fire1") pyta o nazwę, a nie o klawisz. Nowy projekt zawiera te przyciski:

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

Przyciski pada są przypisane do tych samych nazw, a klawisze można zmieniać w Input Manager bez modyfikowania kodu. GetButton, GetButtonDown i GetButtonUp działają tak jak GetKey, GetKeyDown i GetKeyUp. Ten blaster zapisuje strzał po 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 nadal się kompiluje. Unity wyszukuje ją podczas wykonywania wiersza, 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

Napraw podskok żaby i spraw, by znów lądowała.

  1. Naciśnij „Graj”: w konsoli pojawi się błąd dotyczący przycisku "Jumpp". Zmień go na "Jump".
  2. Dodaj drugi warunek if dla Input.GetButtonUp("Jump"), który odejmuje new Vector3(0, hop, 0) od transform.position.

Naciśnij „Graj”, przytrzymaj spację i puść ją: żaba podskoczy, a potem wyląduje. Następnie naciśnij „Sprawdź”.

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);
        }
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity