Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Assegna 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.
    }
}
quiz iconMettiti alla prova

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