Pais e Filhos
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 24 de 67.
Na Hierarchy, um objeto arrastado para outro se torna seu filho e aparece recuado abaixo de seu pai. Um filho se move, gira e muda de escala junto com seu pai: mova o pai e todos os filhos vêm junto, sem nenhum código nos filhos.
O Unity armazena a posição de um filho em relação ao pai. transform.localPosition é esse deslocamento, medido a partir do pai; transform.position é a posição no mundo. Este Rider é filho de um Horse, e seu script o posiciona 1 unidade acima do centro do cavalo e meia unidade para trás, onde quer que o cavalo esteja:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}Com o cavalo em (4, 0.5, 2), a position do cavaleiro é (4, 1.5, 1.5), enquanto sua localPosition permanece (0, 1, -0.5). Quando o cavalo segue andando, a position muda e a localPosition não. O deslocamento é medido ao longo dos próprios eixos do pai, então, quando o pai gira ou tem a escala alterada, o deslocamento gira e muda de escala junto com ele. Para um objeto sem pai, localPosition e position são iguais.
Desafio
MédioA Bandeira é filha do Navio, e o navio não está no centro do mundo. O Start() da bandeira deveria colocá-la no pé do mastro, 0.6 à direita e 1 acima, medidos a partir do navio, mas grava esses números em position, então a bandeira acaba longe do navio.
- Corrija
Start()para que a bandeira comece no pé do mastro. - Enquanto a seta para cima estiver pressionada, ice a bandeira: ela sobe a
climbunidades por segundo até que sua altura medida a partir do navio seja 4, o topo do mastro, e pare ali.
Pressione Play, segure a seta para cima e então Check.
Experimente você mesmo
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
// A base do mastro: 0.6 à direita e 1 para cima, medidos a partir do Ship
transform.position = new Vector3(0.6f, 1, 0);
}
void Update()
{
// Enquanto a seta para cima estiver pressionada, suba até que a altura em relação ao Ship seja 4
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Noções básicas de scripting no Unity
1Seu primeiro script
Olá, UnityPosicione o cuboMova a cada quadroGire a cada segundoConduza com as teclasRecapitulando: dirija o cubo4Vetores
Adicionando vetoresDireçõesEspaço local e espaço do mundoVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone7Projeto: Pegue a Estrela
O ApanhadorUma Estrela Cadente10O ciclo de vida dos scripts
Awake e StartUpdate e LateUpdateOnEnable e OnDisableA ordem do ciclo de vidaRevisão: registrador do ciclo de vida5Transformações e Hierarquia
Pais e FilhosEscalaObserve as CoisasMova-se em Direção a um PontoRevisão: Lua em Órbita6GameObjects e Componentes
Referências no InspectorObter um ComponenteComponentes AusentesAdicionar um ComponenteRequireComponentMostrar e OcultarRevisão: Interruptor de Luz