Настройка проекта
Let's create a new project for our game and set up a level world with a camera view.Давайте создадим новый проект для нашей игры и настроим уровень (world) с видом с камеры.
Step 1. Download Assets and Create the ProjectШаг 1. Загрузка ассетов и создание проекта#
- Create a new empty C# project. Open the SDK Browser, go to My Projects tab and click the Create New button. Создайте новый пустой проект C#. Откройте SDK Browser, перейдите на вкладку My Projects и нажмите кнопку Create New.
-
In the new window, make sure to select C# (.NET) in the API + IDE list of the Application section and click Create New Project.В новом окне обязательно выберите C# (.NET) в списке API + IDE раздела Application и нажмите Create New Project.
-
After the new project is created it will be added to the My Projects tab. Click Open Editor under the created project to open it in the UnigineEditor.После создания новый проект добавляется на вкладку My Projects. Нажмите Open Editor под созданным проектом, чтобы открыть его в UnigineEditor.
-
Download the Docs Sample Content add-on from Add-On Store at https://store.unigine.com/ and add it to the project by dragging into the project data/ folder in the Asset Browser. In the Import Package window that opens, click the Import Package button and wait until the add-on contents are imported.Скачайте дополнение Docs Sample Content с сайта Add-On Store (https://store.unigine.com/) и добавьте его в проект: перетащите в папку data/ в браузере ассетов, в открывшемся окне Import Package нажмите кнопку Import Package и дождитесь окончания импорта содержимого.
- Switch to the UnigineEditor and create a new world. Click File->Create New World on the Menu bar. Specify the name for a new world. Name it level and click OK.Переключитесь на UnigineEditor и создайте новый мир. Нажмите File->Create New World на панели Menu. Укажите имя для нового мира. Назовите его level и нажмите OK.
Смотрите также
For more details refer to the following topics:Для получения более подробной информации обратитесь к следующим разделам:
- Project Workflow article to learn key information on the workflow stages for developing a project with UNIGINE.Статья Разработка проекта для получения ключевой информации об этапах рабочего процесса для разработки проекта с помощью UNIGINE.
- Programming Overview article to learn about the execution sequence and the ways of creating projects in Unigine.Статья Обзор программирования, в которой рассказывается о последовательности выполнения и способах создания проектов в Unigine.
- Creating C# Application article to learn about creating a C# project in Unigine.Статья Создание приложения на C#, в которой рассказывается о создании проекта на C# в Unigine.
Step 2. Set Up the SceneШаг 2. Настройка сцены#
All objects added to the scene are called nodes. Each node has a position, a rotation, and a scale and some basic functionality, which can be extended with components. There are a variety of built-in nodes in UNIGINE.Все объекты, добавленные в сцену, называются нодами. Каждая нода имеет положение, поворот, масштаб и некоторую базовую функциональность, которая может быть расширена с помощью компонентов. В UNIGINE существует множество встроенных типов объектов.
The Play Area in the game will be laid out with a lot of identical floor tiles. Visual representation of the floor tile is defined by a plane Static Mesh with a gray material assigned.Игровая зона в игре будет выложена множеством одинаковых напольных плиток. Визуальное представление напольной плитки определяется плоскостью Static Mesh с присвоенным серым материалом.
So, we make floor tiles as Node References all referring to the single *.node file on a disk.Итак, мы создаем напольные плитки как Node References, все они ссылаются на один файл *.node на диске.
Now, we will create a template for the floor tile and save it as a Node Reference:Теперь мы создадим шаблон для напольной плитки и сохраним его как Node Reference:
-
In the Asset Browser search for plane.mesh via the Search field and drag it to the Editor Viewport to create a new node in the world.В поле Asset Browser найдите plane.mesh через поле Search и перетащите его в окно просмотра редактора, чтобы создать новую ноду в мире.
- Select the newly created node in the World Nodes window and rename (F2 hotkey) it to "floor".Выберите вновь созданную ноду в окне World Nodes и переименуйте ( горячая клавиша F2) ее в "floor".
- Choose the data folder and search for the floor_mat.mat material in the Asset Browser. Then drag it over the floor node in the Editor Viewport to assign the material.Выберите папку data и найдите материал floor_mat.mat в папке Asset Browser. Затем перетащите его на ноду floor в окне просмотра редактора, чтобы назначить материал.
-
In the Editor Viewport use the manipulator to adjust the position of the default ground node, moving it slightly below the floor node to avoid z-fighting artifacts.В Editor Viewport используйте манипулятор, чтобы отрегулировать положение ноды ground по умолчанию, переместив его немного ниже ноды пола, чтобы избежать артефактов Z-конфликта.
- Select the floor node in the World Nodes window and then select the floor_0_mat surface in the Surfaces section of the Parameters window.Выберите ноду floor в окне World Nodes, а затем выберите поверхность floor_0_mat в разделе Surfaces окна Parameters.
-
Check the Collision option for the floor_0_mat surface to enable collision detection.Установите флажок Collision для поверхности floor_0_mat, чтобы включить обнаружение столкновений.
- Convert the floor node to Node Reference and save it as an asset on a disk: right-click on the floor node in the World Nodes window and select Create a Node Reference. Преобразуйте ноду floor в Node Reference и сохраните ее как ассет на диске: щелкните правой кнопкой мыши по ноде floor в окне World Nodes и выберите Create a Node Reference.
Смотрите также
For more details refer to the following topics:Для получения более подробной информации обратитесь к следующим разделам:
- Creating and Deleting Nodes at Runtime article to learn how to manage nodes via the code.Статья Создание и удаление нод во время выполнения, в которой рассказывается о том, как управлять нодами с помощью кода.
Step 3. Instantiate Nodes to Finalize the Play AreaШаг 3. Создание Node Reference для сборки игровой зоны#
Let's create a grid of floor tiles for the Play Area by instancing Node References. For walls we will use box primitives with the default base material and surface collision enabled to stop the character from going through them.Давайте создадим сетку плиток пола для игровой зоны, создав объект Node Reference. Для стен мы будем использовать примитивы коробки с включенными по умолчанию базовым материалом и обнаружением коллизий с поверхностями, чтобы персонаж не проходил через них.
Let's instantiate more of the floor tiles by duplicating the Node Reference via Ctrl + D hotkeys.Давайте создадим больше экземпляров плиток floor, продублировав Node Reference с помощью горячих клавиш Ctrl + D.
You can activate snapping by bound box via Shift + Z hotkeys. Click on the arrow next to the Snap by Grid icon on the Toolbar and choose the By Bound Box option. Select the floor node reference and clone it by holding the Shift key and moving the translate manipulator in the required direction.Вы можете активировать привязку по привязанному блоку с помощью горячих клавиш Shift + Z. Нажмите на стрелку рядом со значком Snap by Grid на Панели инструментов и выберите опцию By Bound Box. Выберите Node Reference floor и клонируйте его, удерживая клавишу Shift и перемещая манипулятор перемещения в нужном направлении.Alternatively, you can hold the Ctrl key to snap a node to the grid.Кроме того, вы можете удерживать клавишу Ctrl, чтобы активировать привязку по сетке.-
You can also select multiple nodes in the Viewport or World Nodes window while holding the Shift key and then clone them all at the same time in a group.Вы также можете выбрать несколько нод в окне Viewport или World Nodes, удерживая клавишу Shift, а затем клонировать их все одновременно в группе.
-
Create a wall by choosing Create->Primitive->Box and then specify the size in all dimensions. Make sure it resembles a wall and place it on the border of the Play Area.Создайте стену, выбрав Create->Primitive->Box, а затем укажите размер во всех измерениях. Убедитесь, что он напоминает стену, и поместите его на границе игровой зоны.
- To make the wall a collider, select it in the World Nodes window. Then, go to the Parameters window and find the Surfaces section in the Node tab. Select the box surface of the mesh and check the Collision option.Чтобы сделать стену коллайдером, выберите ее в окне World Nodes. Затем перейдите в окно Parameters и найдите раздел Surfaces на вкладке Node. Выберите поверхность меша box и установите флажок Collision.
-
Duplicate the primitive with Ctrl + D hotkeys and set up the opposite wall. Create the rest of the walls along the borders of the Play Area the same way.Продублируйте примитив с помощью горячих клавиш Ctrl + D и настройте противоположную стену. Таким же образом создайте остальные стены вдоль границ игровой зоны.
A World Light source (sun) is created for each world by default. So, the scene is lit and walls cast shadows on the ground. You can adjust rotation and other parameters of the light source via the Parameters window.По умолчанию для каждого мира создается источник света World Light (sun). Итак, сцена освещена, а стены отбрасывают тени на землю. Вы можете настроить вращение и другие параметры источника света в окне Parameters.
Alternative way of creating Light Sources via the API is considered here.Альтернативный способ создания источников света через API рассматривается здесь.
Step 4. Create a Player CameraШаг 4. Создание камеры игрока#
In order to see the world through the application window, you need to create a Camera and position it above the Play Area.Чтобы увидеть мир через окно приложения, вам нужно создать Камеру и расположить ее над игровой зоной.
- Add a new Camera via Create->Camera->Dummy, and place it in the world.Добавьте новую камеру через Create->Camera->Dummy и поместите ее в мир.
-
Adjust position (W hotkey) and rotation (E hotkey) of the PlayerDummy node via the manipulator in the Viewport.Настройте положение (горячая клавиша W) и поворот (горячая клавиша E) ноды PlayerDummy с помощью манипулятора в Viewport.
-
Check the Main Player option in the node's Parameters window to make it the default camera.Установите флажок Main Player в окне Parameters ноды, чтобы сделать ее камерой по умолчанию.
Alternative way of creating a camera via the API is considered here.Альтернативный способ создания камеры через API рассматривается здесь.
Step 5. Save Changes and Run the GameШаг 5. Сохранение изменений и запуск игры#
Now, you can run the game via the SDK Browser.Теперь вы можете запустить игру через SDK Browser.
- To save changes to the world, go to File->Save World or press Ctrl+S hotkey.Чтобы сохранить изменения в мире, выберите File->Save World или нажмите горячую клавишу Ctrl+S.
-
To customize running options (change the default world to be loaded to our world named level) click the ellipsis next to the Run button in the SDK Browser.Чтобы настроить параметры запуска (изменить загружаемый мир по умолчанию на наш мир с именем level), щелкните многоточие рядом с Run в SDK Browser.
Then add the following line to the Arguments field:Затем добавьте следующую строку в поле Arguments:
-console_command "world_load level"
And click RUN to run the game with the scene we've just set up.И щелкните RUN, чтобы запустить игру с миром, который мы только что настроили.