Genitori e figli
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 24 di 67.
Nella Hierarchy, un oggetto trascinato su un altro diventa il suo figlio e viene visualizzato rientrato sotto il suo genitore. Un figlio si sposta, ruota e cambia scala insieme al genitore: sposta il genitore e ogni figlio lo segue, senza bisogno di codice sui figli.
Unity memorizza la posizione di un figlio rispetto al genitore. transform.localPosition è questo offset, misurato dal genitore; transform.position è la posizione nel mondo. Questo Rider è figlio di un Horse e il suo script lo posiziona 1 unità sopra il centro del cavallo e mezzo unità indietro, ovunque si trovi il cavallo:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}Con il cavallo in posizione (4, 0.5, 2), la position del cavaliere è (4, 1.5, 1.5), mentre la sua localPosition rimane (0, 1, -0.5). Quando il cavallo prosegue, position cambia e localPosition no. L'offset è misurato lungo gli assi del genitore, quindi quando il genitore ruota o cambia scala, anche l'offset ruota e cambia scala con esso. Per un oggetto senza genitore, localPosition e position sono uguali.
Sfida
MedioLa bandiera è figlia della nave, e la nave non si trova al centro del mondo. Start() della bandiera dovrebbe posizionarla alla base dell’albero, 0.6 a destra e 1 in alto rispetto alla nave, ma scrive quei numeri in position, quindi la bandiera finisce lontano dalla nave.
- Correggi
Start()in modo che la bandiera inizi alla base dell’albero. - Mentre tieni premuta la freccia in su, issa la bandiera: sale a
climbunità al secondo fino a raggiungere l’altezza 4 rispetto alla nave, la cima dell’albero, dove si ferma.
Premi Play, tieni premuta la freccia in su, poi premi Check.
Provalo tu
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
// La base dell'albero: 0.6 a destra e 1 in alto rispetto alla Ship
transform.position = new Vector3(0.6f, 1, 0);
}
void Update()
{
// Finché la freccia su è premuta, sali fino a raggiungere un'altezza di 4 rispetto alla Ship
}
}
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