Menu
CoddyTech

Velocidade diagonal

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

Mantenha pressionadas as setas para a direita e para cima ao mesmo tempo, e os eixos brutos dão a direção (1, 0, 1). Seu comprimento, .magnitude, é a raiz quadrada de 1 + 1, cerca de 1.41. Um personagem que se move com esse vetor percorre 1.41 unidades na diagonal no tempo que leva para percorrer 1 unidade em linha reta: 41% mais rápido.

.normalized fornece uma cópia de um vetor que aponta na mesma direção e tem exatamente 1 unidade de comprimento: (1, 0, 1) se torna aproximadamente (0.71, 0, 0.71), e (0, 0, 5) se torna (0, 0, 1). Multiplicado por uma velocidade, ele se move nessa velocidade, independentemente da direção. Esta abelha voa em direção à flor a 2 unidades por segundo, esteja a flor longe ou perto; sem .normalized, ela voaria mais rápido quanto mais longe a flor estivesse:

public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;

void Update()
{
    Vector3 toFlower = flower - transform.position;
    transform.position += toFlower.normalized * speed * Time.deltaTime;
}

Vector3.zero.normalized continua sendo (0, 0, 0), já que zero não tem direção. v.normalized deixa v como estava; v.Normalize() altera o próprio v.

challenge icon

Desafio

Fácil

Escreva o movimento do personagem. As setas (ou WASD), lidas com os eixos brutos, movem-no para a esquerda e para a direita ao longo de x e para cima e para baixo ao longo de z. Ele se move a speed unidades por segundo em todas as direções, incluindo diagonais, começa e para imediatamente e fica parado quando nenhuma tecla está pressionada.

Pressione Play, caminhe em linha reta e na diagonal e, em seguida, pressione Check.

Experimente você mesmo

using UnityEngine;

public class Walker : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Setas ou WASD: mova-se pelos eixos x e z na velocidade speed, inclusive nas diagonais.
    }
}
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