Menu
CoddyTech

Direções

Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 18 de 67.

O Unity tem nomes para as seis direções, cada uma com comprimento de uma unidade:

  • Vector3.right (1, 0, 0) e Vector3.left (-1, 0, 0)
  • Vector3.up (0, 1, 0) e Vector3.down (0, -1, 0)
  • Vector3.forward (0, 0, 1) e Vector3.back (0, 0, -1)

Também existem Vector3.zero (0, 0, 0) e Vector3.one (1, 1, 1). Como cada direção tem comprimento de uma unidade, uma direção multiplicada por uma velocidade resulta em um deslocamento exatamente igual a essa velocidade. Este caracol se arrasta para longe da câmera a 0.5 unidades por segundo:

public float speed = 0.5f;

void Update()
{
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

Esse é o mesmo deslocamento que new Vector3(0, 0, speed * Time.deltaTime), mas a direção é mais fácil de ler e é mais difícil colocá-la no eixo errado. Um sinal de menos inverte uma direção: -Vector3.forward é Vector3.back. Essas direções pertencem ao mundo, não ao objeto: Vector3.forward é o z do mundo, mesmo quando o caracol está virado para o outro lado. A próxima lição move os objetos na direção para a qual estão voltados.

challenge icon

Desafio

Fácil

Controle o gancho do guindaste com as setas a speed unidades por segundo: as setas para a direita e para a esquerda o deslocam para a direita e para a esquerda ao longo do eixo x, a seta para cima o eleva e a seta para baixo o abaixa. Use as direções nomeadas do Unity. Sem nenhuma tecla pressionada, ele permanece onde está.

Pressione Play e manobre o gancho; em seguida, pressione Check.

Experimente você mesmo

using UnityEngine;

public class Hook : MonoBehaviour
{
    public float speed = 2f;

    void Update()
    {
        // Setas para a direita/esquerda: deslizam ao longo de x. Setas para cima/baixo: sobem e descem.
    }
}
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