Menu
CoddyTech

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.)

challenge icon

Desafio

Fácil

O 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.
    }
}
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