Управляй
Урок 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, поэтому проверь его один раз в начале.
Задание
ЛегкоУправляй змейкой с помощью стрелок или WASD.
- Добавь
using UnityEngine.InputSystem;вSnake. - В начале
Update()считывайKeyboard.current: стрелка вверх или W задаётdirection = Vector3.forward, стрелка вниз или S —Vector3.back, стрелка влево или A —Vector3.left, стрелка вправо или D —Vector3.right. - Оставь
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