Menu
CoddyTech

Sommare vettori

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 17 di 67.

Un Vector3 può essere memorizzato in una variabile e due di essi si sommano con +: x si somma a x, y a y e z a z. È così che due spinte si combinano in un unico movimento. Questo pallone da spiaggia rotola in avanti a 2 unità al secondo mentre il vento lo spinge di 1 unità al secondo verso destra:

Vector3 roll = new Vector3(0, 0, 2);
Vector3 wind = new Vector3(1, 0, 0);

void Update()
{
    Vector3 move = roll + wind;   // (1, 0, 2)
    transform.position += move * Time.deltaTime;
}

Moltiplicare un vettore per un numero moltiplica ciascuna delle sue componenti: wind * 3 è (3, 0, 0), una tempesta, e move * Time.deltaTime trasforma un movimento al secondo nel movimento per questo fotogramma. Anche la sottrazione funziona componente per componente e a - b è il passo che porta dal punto b al punto a. Non esiste * tra due vettori: roll * wind non viene compilato.

challenge icon

Sfida

Facile

La current di un fiume trasporta sempre la barca. Mentre tieni premuta la freccia verso l'alto, anche il motor spinge la barca, oltre alla corrente. Entrambi sono movimenti in unità al secondo, impostati nell'Inspector: la corrente è (1, 0, 0) e il motore (0, 0, 3).

Premi Play e attraversa il fiume con la freccia verso l'alto, poi premi Check.

Provalo tu

using UnityEngine;

public class Boat : MonoBehaviour
{
    public Vector3 current = new Vector3(0, 0, 0);
    public Vector3 motor = new Vector3(0, 0, 0);

    void Update()
    {
        // La corrente trasporta sempre la barca.
        // Finché si tiene premuta la freccia su, anche il motore spinge.
    }
}
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