Ejes
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 13 de 67.
Input.GetAxis("Horizontal") convierte las flechas izquierda y derecha (y A y D) en un número de -1 a 1: -1 para la izquierda, 1 para la derecha y 0 para ninguna. Input.GetAxis("Vertical") hace lo mismo con las flechas abajo y arriba (S y W). Una llamada reemplaza dos if, y un joystick de mando controla los mismos ejes sin código adicional.
El número no da un salto. Con los ajustes predeterminados de Unity, se mueve hacia su objetivo a 3 por segundo, así que tarda un tercio de segundo en llegar a 1 después de pulsar y otro tercio en volver a 0 después de soltar. Esa suavización hace que este aerodeslizador acelere suavemente y se deslice hasta detenerse:
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}Input.GetAxisRaw("Horizontal") omite la suavización: devuelve exactamente -1, 0 o 1 en cada fotograma, así que el movimiento empieza y se detiene de inmediato. Usa GetAxis para acciones que deberían sentirse pesadas y GetAxisRaw para controles precisos. Si mantienes pulsadas ambas flechas, cualquiera de las dos funciones devuelve 0, porque las dos direcciones se cancelan. (En un proyecto de Unity 6, el ajuste Active Input Handling de Steer with the Keys también se aplica a los ejes.)
Desafío
FácilEl rover debe responder con precisión, sin aceleración gradual: las flechas (o WASD) lo desplazan a speed unidades por segundo, a izquierda y derecha a lo largo de x, y hacia arriba y hacia abajo a lo largo de z. Se mueve a toda velocidad desde el momento en que se pulsa una tecla y se detiene en cuanto se suelta.
Pulsa Play, haz clic en el juego y conduce; después pulsa Check.
Pruébalo tú mismo
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal desplaza a lo largo de x, Vertical a lo largo de z, sin suavizado.
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos de scripting en Unity
1Tu primer script
Hola, UnityColoca el cuboMuévete en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo4Vectores
Sumar vectoresDireccionesEspacio local y globalVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron7Proyecto: Atrapa la estrella
El atrapadorUna estrella fugaz10El ciclo de vida de los scripts
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vida2El Inspector
Campos del InspectorSerializeFieldNúmeros decimales y MathfAtributos del InspectorRepaso: Ascensor5Transformaciones y jerarquía
Padres e hijosEscalaMirar objetosMoverse hacia un puntoRepaso: Luna en órbita8Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias superan a FindEl valor nulo de UnityRepaso: la moneda más cercana11Proyecto: Esquiva los bloques
El corredorBloques que caen6GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz