Menu
CoddyTech

Еда

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

Еда находится в случайной клетке. Координаты клеток — целые числа, поэтому для x и z выбери версию Random.Range с целыми числами. Для целых чисел верхняя граница не включается: Random.Range(1, 7) бросает кубик и выдаёт числа от 1 до 6. Чтобы включить число, запроси число на единицу больше него. При использовании чисел с плавающей точкой возвращаются такие числа, как 3.62, а не середина клетки.

На доске с длиной стороны 4 столбцы идут от -4 до 4:

int x = Random.Range(-4, 5);   // от -4 до 4

На доске одновременно находится только одна еда, поэтому игра создаёт её один раз в Start() и перемещает каждый раз, когда ей нужно новое место. GameManager получает размер доски из поля edge змейки через поле snake.

challenge icon

Задание

Средне

Размести еду на случайной клетке игрового поля.

  1. В GameManager добавь public Snake snake;, public GameObject foodPrefab; и private Transform food; (сцена связывает первые два).
  2. В Start() добавь food = Instantiate(foodPrefab).transform;, затем вызови MoveFood().
  3. void MoveFood(): помести еду в случайную точку с координатами x и z от -snake.edge до snake.edge, а y — 0.

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

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

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Управляет игрой: едой, счётом и завершением игры. В главе 2 этот класс будет дополнен.
}

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

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