Premuto, tenuto, rilasciato
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 12 di 67.
Unity può dirti tre cose diverse riguardo a un tasto, e ciascuna viene richiesta in Update():
Input.GetKeyDown(KeyCode.Space): Space è stato premuto in questo frame? È true in un solo frame per ogni pressione.Input.GetKey(KeyCode.Space): Space è premuto proprio ora? È true in ogni frame mentre Space è tenuto premuto.Input.GetKeyUp(KeyCode.Space): Space è stato rilasciato in questo frame? È true in un solo frame, quando il tasto viene rilasciato.
Tieni premuto Space per mezzo secondo a 60 frame al secondo: GetKey è true in 30 frame, GetKeyDown nel primo di questi e GetKeyUp nel frame successivo all'ultimo. Un cannone che spara una volta per pressione usa GetKeyDown; con GetKey, una pressione sparerebbe 30 colpi:
public int shots = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
shots++;
Debug.Log("Shots fired: " + shots);
}
}GetKeyUp serve per ciò che accade quando il giocatore rilascia il tasto, ad esempio quando termina uno scatto. Tutti e tre restituiscono una risposta solo per il frame corrente, perciò vanno usati in Update(): viene eseguito a ogni frame, mentre Start() viene eseguito una sola volta e si perderebbe quasi ogni pressione.
Sfida
FacileLa fionda si carica mentre tieni premuto Space: charge aumenta di 1 per ogni secondo in cui Space è tenuto premuto e non aumenta quando non lo è. Quando rilasci Space, registra Charge: seguito dalla carica (per esempio Charge: 1.5), poi reimposta charge a 0 per il tiro successivo.
Premi Play, tieni premuto e rilascia Space, quindi osserva la Console. Poi premi Check.
Provalo tu
using UnityEngine;
public class Slingshot : MonoBehaviour
{
float charge = 0f;
void Update()
{
// Finché Space è premuto: charge aumenta di 1 ogni secondo.
// Quando Space viene rilasciato: registra il valore di charge, poi riportalo a 0.
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di scripting in Unity
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce