Espaço local e espaço do mundo
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 19 de 67.
Um objeto tem suas próprias direções, além das do mundo. transform.forward indica para onde aponta o nariz do objeto (a seta azul na visualização Scene do Unity), fornecido como um vetor do mundo com uma unidade de comprimento; transform.right e transform.up são, respectivamente, as direções para a direita e para cima do próprio objeto. Gire o objeto e essas direções girarão com ele. Este avião de papel está girado 90 graus em torno de y na cena, então voa ao longo do eixo x do mundo, para onde está apontado:
public float speed = 4f;
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
}transform.Translate(Vector3.forward * speed * Time.deltaTime) faz a mesma coisa, porque Translate lê seu vetor no espaço próprio do objeto: nesse espaço, Vector3.forward significa a direção para a frente do objeto. Passe Space.World como segundo argumento e ele usará os eixos do mundo, então transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) move o objeto ao longo do eixo z do mundo, independentemente da direção para a qual o avião está apontado.
transform.Rotate também gira em torno dos eixos próprios do objeto. Visto de cima, um ângulo positivo em torno de y gira um objeto na posição vertical para a direita, e um negativo, para a esquerda; transform.forward gira junto com ele.
Desafio
FácilDê controles de tanque ao tanque: a seta para a direita o vira para a direita e a seta para a esquerda o vira para a esquerda, em torno do eixo y, a turn graus por segundo. A seta para cima o conduz para a frente, na direção para a qual está virado, a speed unidades por segundo. Virar sem avançar não o move.
Pressione Play, vire e conduza; em seguida, pressione Check.
Experimente você mesmo
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Setas para a direita/esquerda: giram em torno de y. Seta para cima: move o tanque na direção para a qual ele está voltado.
}
}
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