Padres e hijos
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 31 de 85.
En la Jerarquía, un objeto que se arrastra sobre otro se convierte en su hijo y aparece con sangría bajo su padre. Un hijo se mueve, gira y cambia de escala junto con su padre: mueve al padre y todos los hijos lo acompañan, sin necesidad de código en ellos.
Unity almacena la posición de un hijo con respecto a su padre. transform.localPosition es ese desplazamiento, medido desde el padre; transform.position es la posición en el mundo. Este jinete es hijo de un caballo, y su script lo coloca 1 unidad por encima del centro del caballo y media unidad hacia atrás, dondequiera que esté el caballo:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}Con el caballo en (4, 0.5, 2), la position del jinete indica (4, 1.5, 1.5), mientras que su localPosition sigue siendo (0, 1, -0.5). Cuando el caballo sigue avanzando, position cambia y localPosition no. El desplazamiento se mide a lo largo de los ejes propios del padre, así que cuando el padre gira o cambia de escala, el desplazamiento gira y cambia de escala con él. Para un objeto sin padre, localPosition y position son iguales.
Desafío
IntermedioColoca la bandera al pie del mástil, medida desde el barco.
- En
Start(), las coordenadas (0.6, 1, 0) se miden desde el barco, el objeto padre de la bandera. - En esa línea, cambia
transform.positionportransform.localPosition.
Pulsa «Jugar»: la bandera queda al pie del mástil, en el barco. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
// La base del mástil: 0.6 a la derecha y 1 hacia arriba, medidos desde Ship
transform.position = new Vector3(0.6f, 1, 0);
}
void Update()
{
// Mientras se mantenga pulsada la flecha hacia arriba, asciende hasta que la altura respecto a Ship sea 4
}
}
Todas las lecciones de Fundamentos de scripting en Unity
1Conceptos básicos de C# en Unity
Hola, UnityVariablesLos decimales necesitan una fTexto en la consolaVariables que recuerdanIf y ElseComparar númerosRepaso: Recolector de monedas7Bucles y métodos
Repetir con forBucles dentro de buclesEscribir un métodoMétodos que respondenArraysRepaso: escalera10Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias vencen a FindEl null de UnityRepaso: moneda más cercana13Proyecto: Esquiva los bloques
El corredorBloques desde el cielo2Haz que se mueva
Coloca el cuboMuévelo en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo5Vectores
Sumar vectoresDireccionesEspacio local y mundialVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron8GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz3El Inspector
Campos del InspectorSerializeFieldFloats y MathfAtributos del InspectorRepaso: Ascensor6Transformaciones y jerarquía
Padres e hijosIza la banderaEscalaMira las cosasMuévete hacia un puntoRepaso: Luna en órbita9Proyecto: Atrapa la estrella
El cazadorUna estrella fugaz12El ciclo de vida de un script
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vidaPractica por tu cuenta: Playground de Unity