Spazio locale e spazio globale
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 19 di 67.
Un oggetto ha le proprie direzioni, oltre a quelle del mondo. transform.forward indica dove punta il muso dell'oggetto (la freccia blu nella vista Scene di Unity), espresso come vettore del mondo lungo un'unità; transform.right e transform.up sono rispettivamente la sua destra e il suo alto. Ruota l'oggetto e ruoteranno insieme a esso. Questo aeroplanino di carta è ruotato di 90 gradi attorno a y nella scena, quindi vola lungo l'asse x del mondo, nella direzione in cui punta:
public float speed = 4f;
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
}transform.Translate(Vector3.forward * speed * Time.deltaTime) fa la stessa cosa, perché Translate interpreta il suo vettore nello spazio locale dell'oggetto: lì, Vector3.forward indica la direzione in avanti dell'oggetto. Passa Space.World come secondo argomento e userà invece gli assi del mondo, quindi transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) si sposta lungo l'asse z del mondo, indipendentemente dalla direzione in cui punta l'aeroplanino.
Anche transform.Rotate ruota attorno agli assi locali dell'oggetto. Visto dall'alto, un angolo positivo attorno a y ruota un oggetto in posizione verticale verso destra, mentre un angolo negativo lo ruota verso sinistra, e il suo transform.forward ruota insieme a esso.
Sfida
FacileAssegna al carro armato i controlli: la freccia destra lo fa girare a destra e la freccia sinistra lo fa girare a sinistra, attorno al suo asse y a turn gradi al secondo. La freccia su lo fa avanzare nella direzione verso cui è rivolto, a speed unità al secondo. Girare senza avanzare non lo sposta.
Premi Play, gira e avanza, poi premi Check.
Provalo tu
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Frecce destra/sinistra: ruotano attorno a y. Freccia su: fa avanzare il carro armato nella direzione in cui è rivolto.
}
}
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