Menu
CoddyTech

Dirige

Lección 2 de 14 del curso Juego de Unity: Snake 3D de Coddy.

La serpiente gira con las teclas de flecha o WASD. La cámara mira hacia abajo el tablero desde el borde delantero, así que arriba en la pantalla va a lo largo de +z, Vector3.forward, y abajo es Vector3.back. Vector3.up apunta al cielo: una cabeza que se moviera en esa dirección se elevaría del tablero.

El giro ocurre una vez por pulsación, así que lee las teclas con wasPressedThisFrame del Input System. La pulsación solo cambia direction. Step() sigue moviendo la cabeza en el siguiente tic, así que la serpiente mantiene su ritmo. Un vehículo explorador que se dirige hacia la derecha de la pantalla cuando se pulsa D:

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    heading = Vector3.right;
}

El Input System no tiene ejes en el teclado: una flecha y su letra son dos teclas, unidas con ||. Keyboard.current es null en un dispositivo sin teclado, así que léelo una vez al principio y compruébalo.

challenge icon

Desafío

Fácil
  1. Añade using UnityEngine.InputSystem; a Snake.
  2. Al principio de Update(), lee Keyboard.current. Al pulsar la flecha hacia arriba o W, establece direction en Vector3.forward; la flecha hacia abajo o S, en Vector3.back; la flecha hacia la izquierda o A, en Vector3.left; y la flecha hacia la derecha o D, en Vector3.right.
  3. Deja Step() tal como está: la cabeza gira en el siguiente paso.

Pulsa Play, haz clic en el juego y dirígelo; después, pulsa Check.

Pruébalo tú mismo

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // segundos entre dos pasos
    private float timer;
    private Vector3 direction = Vector3.right;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= tick)
        {
            timer -= tick;
            Step();
        }
    }

    void Step()
    {
        transform.position += direction;
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Juego de Unity: Snake 3D