Guarda gli oggetti
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 26 di 67.
transform.LookAt(point) ruota un oggetto in modo che il suo asse in avanti, la freccia blu z, punti verso una posizione nel mondo. Ruota l'oggetto ma non lo sposta. Questo faro si trova su una torre alle coordinate (0, 6, 0) e punta verso il cancello alle coordinate (4, 0, 10):
void Start()
{
transform.LookAt(new Vector3(4, 0, 10));
}Il cancello è più in basso rispetto alla luce, quindi il faro si inclina verso il basso oltre a ruotare: LookAt punta direttamente al punto, anche verso l'alto o verso il basso. Dopo, transform.forward punta dalla luce verso il cancello.
Chiamato in Start(), LookAt punta una volta. Chiamato in Update(), punta di nuovo a ogni fotogramma, così l'oggetto continua a essere rivolto verso il punto mentre l'oggetto o il punto si sposta. Il suo argomento è sempre una posizione: LookAt(Vector3.forward) punta al punto del mondo (0, 0, 1), un punto vicino al centro del mondo, ovunque si trovi l'oggetto.
Sfida
MedioIl rover si muove già con le frecce lungo gli assi x e z del mondo. Fai in modo che sia rivolto nella direzione in cui si muove: mentre si sposta, la parte anteriore (il suo asse in avanti) punta nella direzione di marcia, anche in diagonale. Quando non tieni premuto alcun tasto, resta fermo e continua a essere rivolto nella direzione in cui si è mosso l’ultima volta.
Premi Play, guida in giro, poi premi Check.
Provalo tu
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 3f;
void Update()
{
Vector3 move = Vector3.zero;
if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
move = move.normalized;
transform.position += move * speed * Time.deltaTime;
// Ruota il rover in modo che sia rivolto nella direzione in cui si muove
}
}
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