Menu
CoddyTech

Naciśnięty, przytrzymany, zwolniony

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

Unity może podać trzy różne informacje o klawiszu, a o każdą z nich pytasz w Update():

  • Input.GetKeyDown(KeyCode.Space): czy w tej klatce naciśnięto spację? Zwraca wartość true w jednej klatce dla każdego naciśnięcia.
  • Input.GetKey(KeyCode.Space): czy spacja jest teraz wciśnięta? Zwraca wartość true w każdej klatce, gdy spacja jest wciśnięta.
  • Input.GetKeyUp(KeyCode.Space): czy w tej klatce zwolniono spację? Zwraca wartość true w jednej klatce, gdy klawisz zostaje zwolniony.

Przytrzymaj spację przez pół sekundy przy 60 klatkach na sekundę, a GetKey zwróci wartość true w 30 klatkach, GetKeyDown w pierwszej z nich, a GetKeyUp w klatce po ostatniej. Armata, która strzela raz na naciśnięcie, sprawdza GetKeyDown; przy użyciu GetKey jedno naciśnięcie spowodowałoby oddanie 30 strzałów:

public int shots = 0;

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        shots++;
        Debug.Log("Shots fired: " + shots);
    }
}

GetKeyUp służy do obsługi tego, co dzieje się, gdy gracz zwalnia klawisz, na przykład kończy sprint. Wszystkie trzy metody odpowiadają wyłącznie dla bieżącej klatki, dlatego należy ich używać w Update(): ta metoda uruchamia się w każdej klatce, podczas gdy Start() uruchamia się raz i przegapiłaby niemal każde naciśnięcie.

challenge icon

Wyzwanie

Łatwy

Proca gromadzi ładunek, gdy trzymasz klawisz spacji: wartość charge zwiększa się o 1 z każdą sekundą trzymania klawisza spacji i nie zwiększa się, gdy go nie trzymasz. Po zwolnieniu klawisza spacji wyświetl w konsoli Charge: , a następnie wartość ładunku (na przykład Charge: 1.5), po czym ustaw charge z powrotem na 0, aby przygotować się do następnego strzału.

Naciśnij Play, przytrzymaj i zwolnij klawisz spacji, a następnie obserwuj konsolę. Potem naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

public class Slingshot : MonoBehaviour
{
    float charge = 0f;

    void Update()
    {
        // Gdy Space jest przytrzymany: charge rośnie o 1 co sekundę.
        // Gdy Space zostanie zwolniony: wypisz charge w logu, a następnie ustaw charge z powrotem na 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