Настройка проекта
Давайте создадим новый проект для нашей игры и настроим уровень (world) с видом с камеры.
Шаг 1. Загрузка ассетов и создание проекта#
- Создайте новый пустой проект C++. Откройте SDK Browser, перейдите на вкладку My Projects и нажмите кнопку Create New.
-
Обязательно выберите C++ (Visual Studio 2015+) в списке API + IDE раздела Application и нажмите Create New Project.
-
После создания новый проект добавится на вкладку My Projects. Нажмите Open Editor под созданным проектом, чтобы открыть его в UnigineEditor.
-
Скачайте дополнение Docs Sample Content с сайта Add-On Store (https://store.unigine.com/) и добавьте его в проект: перетащите в папку data/ в браузере ассетов, в открывшемся окне Import Package нажмите кнопку Import Package и дождитесь окончания импорта содержимого.
Смотрите также
Для получения более подробной информации обратитесь к следующим разделам:
- Статья Разработка проекта для получения ключевой информации об этапах рабочего процесса для разработки проекта с помощью UNIGINE.
- Статья Обзор программирования, в которой рассказывается о последовательности выполнения и способах создания проектов в Unigine.
- Статья Создание приложения на C++, в которой рассказывается о создании проекта на C++ в Unigine.
Шаг 2. Настройка сцены#
Все объекты, добавленные в сцену, называются нодами. Каждая нода имеет положение, поворот, масштаб и некоторую базовую функциональность, которая может быть расширена с помощью компонентов. В UNIGINE существует множество встроенных типов объектов.
Игровая зона в игре будет выложена множеством одинаковых напольных плиток. Визуальное представление напольной плитки определяется плоскостью Static Mesh с присвоенным серым материалом.
Итак, мы создаем напольные плитки как Node References, все они ссылаются на один файл *.node на диске.
Перед настройкой сцены давайте удалим ноды, создаваемые в мире по умолчанию. Удалите ноды material ball и main player.
Теперь мы создадим шаблон для напольной плитки и сохраним его как Node Reference:
-
В поле Asset Browser выберите папку core и выполните поиск plane.mesh с помощью поля Search. Затем перетащите его в окно просмотра редактора, чтобы создать новую ноду в мире.
- Выберите вновь созданную ноду в окне World Nodes и переименуйте ( горячая клавиша F2) ее в floor.
- Выберите папку data и найдите материал floor_mat.mat в папке Asset Browser. Затем перетащите его на ноду floor в окне просмотра редактора, чтобы назначить материал.
-
В окне просмотра редактора используйте манипулятор, чтобы отрегулировать положение ноды ground по умолчанию, переместив его немного ниже ноды floor, чтобы избежать артефактов z-конфликта.
-
В разделе Surfaces окна Parameters установите флажок Collision для поверхности plane, чтобы включить обнаружение столкновений.
- Преобразуйте ноду floor в Node Reference и сохраните ее как ассет на диске: щелкните правой кнопкой мыши по ноде floor в окне World Nodes и выберите Create a Node Reference.
Смотрите также
Для получения более подробной информации обратитесь к следующим разделам:
- Статья Создание и удаление нод во время выполнения, в которой рассказывается о том, как управлять нодами с помощью кода.
Шаг 3. Создание Node Reference для сборки игровой зоны#
Давайте создадим сетку плиток пола для игровой зоны, создав объект Node Reference. Для стен мы будем использовать примитивы коробки с включенными по умолчанию базовым материалом и обнаружением коллизий с поверхностями, чтобы персонаж не проходил через них.
Давайте создадим больше экземпляров плиток floor, продублировав Node Reference с помощью горячих клавиш Ctrl + D.
Вы можете активировать привязку по привязанному блоку с помощью горячих клавиш Shift + Z. Нажмите на стрелку рядом со значком Snap by Grid на Панели инструментов и выберите опцию By Bound Box. Выберите Node Reference floor и клонируйте его, удерживая клавишу Shift и перемещая манипулятор перемещения в нужном направлении.Кроме того, вы можете удерживать клавишу Ctrl, чтобы активировать привязку по сетке.-
Вы также можете выбрать несколько нод в окне Viewport или World Nodes, удерживая клавишу Shift, а затем клонировать их все одновременно в группе.
-
Создайте стену, выбрав Create->Primitive->Box, а затем укажите размер во всех измерениях. Убедитесь, что он напоминает стену, и поместите его на границе игровой зоны.
- Чтобы сделать стену коллайдером, выберите ее в окне World Nodes. Затем перейдите в окно Parameters и найдите раздел Surfaces на вкладке Node. Выберите поверхность меша box и установите флажок Collision.
-
Продублируйте примитив с помощью горячих клавиш Ctrl + D и настройте противоположную стену. Таким же образом создайте остальные стены вдоль границ игровой зоны.
По умолчанию для каждого мира создается источник света World Light (sun). Итак, сцена освещена, а стены отбрасывают тени на землю. Вы можете настроить вращение и другие параметры источника света в окне Parameters.
Альтернативный способ создания источников света через API рассматривается здесь.
Шаг 4. Создание камеры игрока#
Чтобы увидеть мир через окно приложения, вам нужно создать Камеру и расположить ее над игровой зоной.
- Добавьте новую камеру через Create->Camera->Dummy и поместите ее в мир.
-
Настройте положение (горячая клавиша W) и поворот (горячая клавиша E) ноды PlayerDummy с помощью манипулятора в Viewport.
-
Установите флажок Main Player в окне Parameters ноды, чтобы сделать ее камерой по умолчанию.
Альтернативный способ создания камеры через API рассматривается здесь.
Шаг 5. Сохранение изменений и запуск игры#
Теперь вы можете запустить игру через SDK Browser.
- Чтобы сохранить изменения в мире, выберите File->Save World или нажмите горячую клавишу Ctrl+S.
-
Нажмите кнопку Run в SDK Browser, чтобы запустить игру со сценой, которую мы только что настроили.