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.
Wyzwanie
ŁatwyProca 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.
}
}
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
1Twój pierwszy skrypt
Witaj, UnityUmieść sześcianPoruszaj się w każdej klatceObracaj się co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian2Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPodsumowanie: Winda5Transformacje i hierarchia
Rodzice i dzieciSkalaPatrz na obiektyPoruszanie się w kierunku punktuPodsumowanie: Księżyc krążący po orbicie3Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski o nazwachPrzyciski myszyPowtórka: naładowany skok6Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePodsumowanie: włącznik światła