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.
Desafio
FácilEscreva 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.
}
}
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