Assi
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 13 di 67.
Input.GetAxis("Horizontal") trasforma le frecce sinistra e destra (e A e D) in un unico numero da -1 a 1: -1 per sinistra, 1 per destra, 0 per nessuna delle due. Input.GetAxis("Vertical") fa lo stesso per le frecce giù e su (S e W). Una chiamata sostituisce due if e uno stick del gamepad controlla gli stessi assi senza codice aggiuntivo.
Il numero non salta. Con le impostazioni predefinite di Unity si avvicina al valore obiettivo a 3 al secondo, quindi ci vuole un terzo di secondo per raggiungere 1 dopo aver premuto un tasto e un altro terzo per tornare a 0 dopo averlo rilasciato. Questa transizione graduale fa accelerare dolcemente questo hovercraft e lo fa scivolare fino a fermarsi:
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}Input.GetAxisRaw("Horizontal") salta la transizione graduale: restituisce esattamente -1, 0 o 1 a ogni frame, quindi il movimento inizia e si ferma all'istante. Usa GetAxis per le cose che dovrebbero trasmettere una sensazione di pesantezza e GetAxisRaw per controlli reattivi. Se tieni premute entrambe le frecce, entrambe le funzioni restituiscono 0, perché le due direzioni si annullano a vicenda. (In un progetto Unity 6, l'impostazione Active Input Handling di Steer with the Keys si applica anche agli assi.)
Sfida
FacileIl rover dovrebbe rispondere in modo preciso, senza rallentamenti: le frecce (o WASD) lo muovono a speed unità al secondo, a sinistra e a destra lungo x, in alto e in basso lungo z. Si muove alla massima velocità dal momento in cui premi un tasto e si ferma nel momento in cui lo rilasci.
Premi Play, fai clic sul gioco e guida, poi premi Check.
Provalo tu
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal controlla il movimento lungo x, Vertical lungo z, senza interpolazione graduale.
}
}
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