Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к экзамену.docx
Скачиваний:
29
Добавлен:
21.06.2022
Размер:
16.83 Mб
Скачать

4. Поддержка языков программирования в Unity. Сценарии. Компоненты. Методы Start() и Update(). Вывод информации в консоль.

В приложении Unity поддерживается ряд языков программирования, в частности JavaScript и C#. Каждый вариант имеет свои достоинства и недостатки, но в этой книге все примеры даны на языке C#.

Для запуска кода в Unity первым делом нужно связать файлы с кодом с каким-либо объектом сцены. Это часть компонентной системы, о которой говорилось выше; игровые объекты создаются как наборы компонентов, и в каждый такой набор может входить исполняемый сценарий.

Сценарии в Unity представляют собой компоненты. Но следует отметить, что в эту группу попадают не все сценарии, а только наследующие от класса MonoBehaviour, базового класса компонентов-сценариев. Этот класс определяет способ присоединения компонентов к игровым объектам. Наследование от этого класса дает пару автоматически запускаемых методов, которые вы можете переопределить. Это метод Start(), вызываемый при активации объекта (она, как правило, наступает после загрузки содержащего объект уровня), и вызываемый в каждом кадре метод Update(). Соответственно, код будет запущен, если вставить его в эти предустановленные методы.

Существует шаблон сценария, скрытый в недрах Unity. При создании нового сценария приложение копирует этот шаблон и переименовывает класс в соответствии с именем файла (в моем случае это HelloWorld.cs). Добавляются и пустые оболочки методов Start() и Update(), так как именно из этих методов чаще всего вызывается пользовательский код. Чтобы создать сценарий, откройте меню Assets, наведите указатель мыши на строчку Create и выберите на открывшейся дополнительной панели команду C# Script. Обратите внимание, что как в меню Assets, так и в меню GameObjects есть варианты команды Create, но это разные вещи. Альтернативным способом доступа к нужному нам меню является щелчок правой кнопкой мыши в произвольной точке вкладки Project. Введите имя нового сценария, например HelloWorld. Чуть позже, на рис. 1.15 вы увидите, что можно перетащить файл сценария мышью на произвольный объект сцены. Дважды щелкните на значке сценария, и он автоматически откроется в программе MonoDevelop, о которой мы поговорим ниже.

Команда Debug.Log() выводит сообщение на вкладку Console. Строка с этой командой вставляется в метод Start(), потому что, как упоминалось выше, данный метод одно-кратно вызывается после активации объекта. Другими словами, после нажатия кнопки Play в редакторе метод Start() будет вызван всего один раз. Добавив в сценарий команду регистрации, обязательно сохраните его и нажмите кнопку Play в программе Unity.

5. Планирование трехмерного проекта fps. Трехмерное координатное пространство. Правая и левая системы координат.

Перед тем как приступить к программированию, всегда нужно остановиться и ответить на вопрос «Что я собираюсь построить?». Первым проектом станет создание сцены из шутера от первого лица — мы будем обозначать этот тип игр аббревиатурой FPS (First-Person Shooter). Рисунок 2.2 иллюстрирует сценарий проекта, по сути, представляющий собой придуманный мной перечень действий:

1. Разработка комнаты: создание пола, внешних и внутренних стен.

2. Размещение источников света и камеры.

3. Создание объекта-игрока (в том числе и присоединение камеры к его верхней части).

4. Написание сценариев перемещения: повороты при помощи мыши и перемещения при помощи клавиатуры.

Мы начинаем с игры от первого лица, чтобы снизить требования к художественному оформлению, — в играх от первого лица себя игрок не видит, поэтому вполне допустимо придать персонажу форму цилиндра, на верхней грани которого закреплена камера! Теперь осталось понять, как функционируют трехмерные координаты, и вы сможете легко вставлять объекты в сцены в визуальном редакторе.

Сформулированный нами для начала простой план включает в себя три аспекта:

  • игровое пространство,

  • средства наблюдения,

  • элементы управления.

Для их реализации требуется понимание того, каким образом в трехмерных симуляциях задаются положение и перемещение объектов. Те, кто раньше никогда не сталкивался с трехмерной графикой, вполне могут этого не знать.

Все сводится к числам, указывающим положение точки в пространстве. Сопоставление этих чисел с пространством происходит через оси системы координат. На рис. 2.3 оси X и Y прямоугольная, или декартова, система координат. Две оси дают вам двумерные координаты. Это случай, когда все точки лежат в одной плоскости. Трехмерное пространство задается уже тремя координатными осями. Так как ось X располагается на странице горизонтально, а ось Y — вертикально, третья ось должна как бы «протыкать» страницу, располагаясь перпендикулярно осям X и Y. Рисунок 2.4 демонстрирует оси X, Y и Z для трехмерного координатного пространства. У всех элементов, обладающих определенным положением в сцене (у игрока, у стен и т. п.), будут координаты XYZ. На вкладке Scene в Unity вы видите значок трех осей, а на панели Inspector можно указать три числа, задающих положение объекта. Координаты в трехмерном пространстве вы будете использовать не только при написании кода, определяющего местоположение объектов, но и для указания смещений как значений сдвига вдоль каждой из осей.

ПРАВАЯ И ЛЕВАЯ СИСТЕМЫ КООРДИНАТ

Положительное и отрицательное направления каждой оси выбираются произвольным образом, в обоих случаях система координат прекрасно работает. Главное, используя инструмент для обработки трехмерной графики (инструмент анимации, инструмент разработки и т. п.), всегда выбирать одну и ту же систему координат. Впрочем, практически всегда ось X указывает вправо, а ось Y — вверх; разница между инструментами в основном состоит в том, что где-то ось Z выходит из страницы, а где-то входит в нее. Эти два варианта называют «правой» и «левой» системами координат. Как показано на рисунке на с. 38, если большой палец расположить вдоль оси X, а указательный — вдоль оси Y, средний палец задаст направление оси Z.

В Unity, как и во многих других приложениях для работы с компьютерной графикой, используется левая система координат. Однако существует множество инструментов, в которых применяется правая система координат (например, OpenGL).