Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Dê 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.
    }
}
quiz iconTeste seus conhecimentos

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