Menu
CoddyTech

Dirige

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

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

Se realiza un giro una vez por pulsación, así que lee las teclas con wasPressedThisFrame. La pulsación solo cambia direction; Step() sigue moviendo la cabeza en el siguiente tic:

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

Una flecha y su letra son dos teclas, unidas con ||. Keyboard.current es null en un dispositivo sin teclado, así que compruébalo una vez al principio.

challenge icon

Desafío

Fácil

Dirige la serpiente con las flechas o WASD.

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

Pulsa «Jugar», haz clic en el juego y dirige la serpiente: la cabeza gira en el siguiente paso. Después, pulsa «Comprobar».

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;
    }
}

Todas las lecciones de Juego de Unity: Serpiente 3D

Practica por tu cuenta: Playground de Unity