Naciśnięty, przytrzymany, zwolniony
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 19 z 85.
Unity może przekazać Ci 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ę? Wartość jest prawdziwa w jednej klatce przy każdym naciśnięciu.Input.GetKey(KeyCode.Space): czy spacja jest teraz wciśnięta? Wartość jest prawdziwa w każdej klatce, gdy spacja jest wciśnięta.Input.GetKeyUp(KeyCode.Space): czy w tej klatce zwolniono spację? Wartość jest prawdziwa w jednej klatce, gdy klawisz zostanie zwolniony.
Przytrzymaj spację przez pół sekundy przy 60 klatkach na sekundę, a GetKey będzie miało wartość true w 30 klatkach, GetKeyDown w pierwszej z nich, a GetKeyUp w klatce po ostatniej. Armata, która strzela raz przy każdym naciśnięciu, sprawdza GetKeyDown; przy użyciu GetKey jedno naciśnięcie wystrzeliłoby 30 pociskó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 się dzieje, gdy gracz puszcza klawisz, na przykład kończącego się sprintu. Wszystkie trzy sprawdzają tylko bieżącą klatkę, dlatego należy używać ich w Update(): ta metoda uruchamia się w każdej klatce, podczas gdy Start() uruchamia się raz i przeoczyłaby niemal każde naciśnięcie.
Wyzwanie
ŁatwyProca się ładuje, gdy przytrzymujesz klawisz spacji, i wyświetla wynik strzału po jego zwolnieniu.
- W
Update(), gdyInput.GetKey(KeyCode.Space)ma wartość true, dodajTime.deltaTimedocharge. - Po
Input.GetKeyUp(KeyCode.Space)wyświetl w logu"Charge: " + charge, a następnie ustawchargena 0.
Naciśnij „Graj”, przytrzymaj spację i puść ją: w konsoli pojawi się wiersz podobny do Charge: 1.5. Następnie naciśnij „Sprawdź”.
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 wartość charge w logu, a następnie ustaw ją z powrotem na 0.
}
}
Wszystkie lekcje w sekcji Podstawy skryptów w Unity
1Podstawy C# w Unity
Witaj, UnityZmienneLiczby dziesiętne wymagają fTekst w konsoliZmienne, które pamiętająIf i elsePorównywanie liczbPowtórka: Zbieracz monet4Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski z nazwamiPrzyciski myszyPowtórka: naładowany skok7Pętle i metody
Powtarzaj za pomocą forPętle wewnątrz pętliNapisz metodęMetody, które zwracają wynikTablicePowtórka: schody10Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż wyszukiwanieNull w UnityPowtórka: najbliższa moneta13Projekt: Unikaj bloków
BiegaczBloki z nieba2Wpraw to w ruch
Umieść sześcianPoruszaj w każdej klatceObracaj co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian5Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 to strukturaPodsumowanie: pilot drona8Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePowtórka: włącznik światłaPoćwicz samodzielnie: Edytor online Unity