Еда
Урок 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.
Задание
СреднеРазмести еду на случайной клетке игрового поля.
- В
GameManagerдобавьpublic Snake snake;,public GameObject foodPrefab;иprivate Transform food;(сцена связывает первые два). - В
Start()добавьfood = Instantiate(foodPrefab).transform;, затем вызовиMoveFood(). void MoveFood(): помести еду в случайную точку с координатами x и z от-snake.edgeдоsnake.edge, а y — 0.
Нажми «Играть»: красная сфера появится на клетке, каждый раз в новом месте. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Управляет игрой: едой, счётом и завершением игры. В главе 2 этот класс будет дополнен.
}
Все уроки раздела Игра на Unity: 3D-змейка
Потренируйтесь самостоятельно: Песочница Unity