Menu
CoddyTech

Управляй

Урок 2 из 14 курса Игра на Unity: 3D-змейка на Coddy.

Змейка поворачивает с помощью клавиш со стрелками или WASD. Камера смотрит на доску с переднего края, поэтому направление вверх по экрану — это +z, Vector3.forward, а вниз — Vector3.back. Vector3.up указывает в небо: голова, перемещённая в этом направлении, поднялась бы над доской.

Поворот происходит один раз при нажатии, поэтому считывай нажатия клавиш с помощью wasPressedThisFrame. Нажатие только меняет direction; Step() по-прежнему перемещает голову на следующем тике:

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

Стрелка и соответствующая ей буква — это две клавиши, объединённые оператором ||. На устройстве без клавиатуры Keyboard.current равен null, поэтому проверь его один раз в начале.

challenge icon

Задание

Легко

Управляй змейкой с помощью стрелок или WASD.

  1. Добавь using UnityEngine.InputSystem; в Snake.
  2. В начале Update() считывай Keyboard.current: стрелка вверх или W задаёт direction = Vector3.forward, стрелка вниз или S — Vector3.back, стрелка влево или A — Vector3.left, стрелка вправо или D — Vector3.right.
  3. Оставь Step() без изменений: голова повернёт на следующем шаге.

Нажми «Играть», щёлкни по игровому полю и управляй змейкой: голова повернёт на следующем шаге. Затем нажми «Проверить».

Попробуйте сами

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // секунды между двумя шагами
    private float timer;
    private Vector3 direction = Vector3.right;

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

    void Step()
    {
        transform.position += direction;
    }
}

Все уроки раздела Игра на Unity: 3D-змейка

Потренируйтесь самостоятельно: Песочница Unity