Menu
CoddyTech

Direzioni

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 25 di 85.

Unity ha dei nomi per le sei direzioni, ciascuna lunga un'unità:

  • Vector3.right (1, 0, 0) e Vector3.left (-1, 0, 0)
  • Vector3.up (0, 1, 0) e Vector3.down (0, -1, 0)
  • Vector3.forward (0, 0, 1) e Vector3.back (0, 0, -1)

Ci sono anche Vector3.zero (0, 0, 0) e Vector3.one (1, 1, 1). Poiché ogni direzione è lunga un'unità, moltiplicare una direzione per una velocità produce uno spostamento esattamente pari a quella velocità. Questa lumaca si allontana strisciando dalla telecamera a 0.5 unità al secondo:

public float speed = 0.5f;

void Update()
{
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

È lo stesso spostamento di new Vector3(0, 0, speed * Time.deltaTime), ma la direzione è più facile da leggere e meno soggetta a essere inserita sull'asse sbagliato. Un segno meno inverte una direzione: -Vector3.forward è Vector3.back. Queste direzioni appartengono al mondo, non all'oggetto: Vector3.forward è lo z del mondo anche quando la lumaca è girata dall'altra parte. Nella prossima lezione sposterai gli oggetti nella direzione in cui sono rivolti.

challenge icon

Sfida

Facile

Guida il gancio della gru con le quattro frecce, usando le direzioni con nome di Unity.

  1. In Update(), scrivi un if su Input.GetKey per ciascun tasto freccia.
  2. Ognuno aggiunge la propria direzione moltiplicata per speed * Time.deltaTime: Vector3.right, Vector3.left, Vector3.up o Vector3.down, come in transform.position += Vector3.up * speed * Time.deltaTime;.

Premi «Gioca» e guida: il gancio scorre, sale e scende. Poi premi «Verifica».

Provalo tu

using UnityEngine;

public class Hook : MonoBehaviour
{
    public float speed = 2f;

    void Update()
    {
        // Frecce destra/sinistra: scorri lungo x. Frecce su/giù: alza e abbassa.
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity

Esercitati da solo: Playground Unity