Eixos
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 13 de 67.
Input.GetAxis("Horizontal") transforma as setas esquerda e direita (e A e D) em um número de -1 a 1: -1 para a esquerda, 1 para a direita, 0 para nenhuma. Input.GetAxis("Vertical") faz o mesmo para as setas para baixo e para cima (S e W). Uma chamada substitui dois ifs, e um controle de videogame usa os mesmos eixos sem código extra.
O número não dá um salto. Com as configurações padrão do Unity, ele se move em direção ao valor desejado a 3 por segundo, então leva um terço de segundo para chegar a 1 após pressionar uma tecla e mais um terço de segundo para voltar a 0 após soltá-la. Essa suavização faz este hovercraft ganhar velocidade suavemente e deslizar até parar:
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}Input.GetAxisRaw("Horizontal") ignora a suavização: o valor é exatamente -1, 0 ou 1 em cada quadro, então o movimento começa e para imediatamente. Use GetAxis para coisas que devem parecer pesadas e GetAxisRaw para controles precisos. Com as duas setas pressionadas, qualquer uma das funções retorna 0, porque as duas direções se anulam. (Em um projeto Unity 6, a configuração Active Input Handling de Steer with the Keys também se aplica aos eixos.)
Desafio
FácilO rover deve responder com precisão, sem suavização: as setas (ou WASD) o movem a speed unidades por segundo, para a esquerda e para a direita ao longo de x, para cima e para baixo ao longo de z. Ele se move em velocidade máxima assim que uma tecla é pressionada e para assim que a tecla é solta.
Pressione Play, clique no jogo e dirija; em seguida, pressione Check.
Experimente você mesmo
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal controla o movimento ao longo de x, Vertical ao longo de z, sem suavização.
}
}
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