This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Создание C ++ приложения

A UNIGINE-based application can be implemented by means of C++ only, without using UnigineScript.Приложение на основе UNIGINE может быть реализовано только с помощью C ++, без использования UnigineScript.

This article describes how to add logic to your project by using the C++ language. Code written in C++ is the same for all supported platforms: Windows and Linux. The difference is in the way of compiling the project.В этой статье описывается, как добавить логику в ваш проект с помощью языка C ++. Код, написанный на C ++, одинаков для всех поддерживаемых платформ: Windows и Linux. Разница в способе компиляции проекта.

See also
Смотрите также#

  • Articles in the Development for Different Platforms section to learn more on how to prepare the development environment, install the UNIGINE SDK and build the application for different platforms.Статьи в разделе Разработка для различных платформ , чтобы узнать больше о том, как подготовить среду разработки, установить UNIGINE SDK и собрать приложение для разных платформ.
  • Examples located in the <UnigineSDK>/source/samples/Api and <UnigineSDK>/source/samples/App folders.Примеры находятся в папках <UnigineSDK>/source/samples/Api и <UnigineSDK>/source/samples/App.

Creating Empty C++ Application
Создание пустого приложения C ++#

It is very easy to start your own C++ project by using UNIGINE SDK Browser:Начать собственный проект на C ++ с помощью UNIGINE SDK Browser очень просто:

  1. Open the UNIGINE SDK Browser.Откройте браузер UNIGINE SDK.
  2. Go to the Projects tab and click CREATE NEW.
    Перейдите на вкладку Projects и нажмите CREATE NEW.
  3. Specify the following parameters:
    • Project name — specify the name of your project. Project name — specify the name of your project.
    • Location — specify the path to your project folder. Location — specify the path to your project folder.
    • SDK — choose the UNIGINE SDK edition. SDK — choose the UNIGINE SDK edition.
    • API+IDE — choose C++ to start working with the C++ API.

      This parameter depends on a platform:This parameter depends on a platform:

      • On Windows, you can create C++ Visual Studio 2022 project.On Windows, you can create C++ Visual Studio 2022 project.
      • On Linux you can create C++ GNU make project.On Linux you can create C++ GNU make project.

      You can also can create C++ CMake projectYou can also can create C++ CMake project

      This parameter depends on a platform:On Windows, you can create C++ Visual Studio 2022 project.On Linux you can create C++ GNU make project.You can also can create C++ CMake project
      API+IDE — choose C++ to start working with the C++ API.

      This parameter depends on a platform:This parameter depends on a platform:

      • On Windows, you can create C++ Visual Studio 2022 project.On Windows, you can create C++ Visual Studio 2022 project.
      • On Linux you can create C++ GNU make project.On Linux you can create C++ GNU make project.

      You can also can create C++ CMake projectYou can also can create C++ CMake project

    • Precision - specify the precision. In this example we will use double precision.Precision - specify the precision. In this example we will use double precision.
    Примечание
    Read more about these parameters in this article Read more about these parameters in this article
    Project name — specify the name of your project. Location — specify the path to your project folder. SDK — choose the UNIGINE SDK edition. API+IDE — choose C++ to start working with the C++ API.

    This parameter depends on a platform:This parameter depends on a platform:

    • On Windows, you can create C++ Visual Studio 2022 project.On Windows, you can create C++ Visual Studio 2022 project.
    • On Linux you can create C++ GNU make project.On Linux you can create C++ GNU make project.

    You can also can create C++ CMake projectYou can also can create C++ CMake project

    This parameter depends on a platform:On Windows, you can create C++ Visual Studio 2022 project.On Linux you can create C++ GNU make project.You can also can create C++ CMake projectPrecision - specify the precision. In this example we will use double precision.Read more about these parameters in this article
    Укажите следующие параметры:
    • Project name — specify the name of your project.Project name - укажите название вашего проекта.
    • Location — specify the path to your project folder.Location - укажите путь к папке вашего проекта.
    • SDK — choose the UNIGINE SDK edition.SDK - выберите редакцию UNIGINE SDK.
    • API+IDE — choose C++ to start working with the C++ API.

      This parameter depends on a platform:This parameter depends on a platform:

      • On Windows, you can create C++ Visual Studio 2022 project.On Windows, you can create C++ Visual Studio 2022 project.
      • On Linux you can create C++ GNU make project.On Linux you can create C++ GNU make project.

      You can also can create C++ CMake projectYou can also can create C++ CMake project

      This parameter depends on a platform:On Windows, you can create C++ Visual Studio 2022 project.On Linux you can create C++ GNU make project.You can also can create C++ CMake project
      API+IDE - выберите C ++ , чтобы начать работу с C ++ API.

      This parameter depends on a platform:Этот параметр зависит от платформы:

      • On Windows, you can create C++ Visual Studio 2022 project.В Windows вы можете создать проект C++ Visual Studio 2022.
      • On Linux you can create C++ GNU make project.В Linux вы можете создать проект C++ GNU make.

      You can also can create C++ CMake projectВы также можете создать проект C ++ CMake

    • Precision - specify the precision. In this example we will use double precision.Precision - указать точность. В этом примере мы будем использовать двойную точность .
    Примечание
    Read more about these parameters in this article Подробнее об этих параметрах читайте в этой статье .
  4. Click the CREATE NEW PROJECT button. The project will appear in the projects list.
    Щелкните кнопку CREATE NEW PROJECT. Проект появится в списке проектов.

You can run your project by clicking the Run button.Вы можете запустить свой проект, нажав кнопку Run.

Примечание
By default, in the world script file a WorldLight and a PlayerSpectator are created. You can leave functions of the world script empty, and create your own lights and players by using C++.По умолчанию в файле world script создаются WorldLight и PlayerSpectator. Вы можете оставить функции скрипта мира пустыми и создавать свои собственные источники света и проигрывателей с помощью C ++.

Implementing C++ Logic
Реализация логики C ++#

In this section we will add logic to the empty C++ application project.В этом разделе мы добавим логику к пустому проекту приложения C ++.

The following example shows how to rotate the material ball that was created by default in your project.В следующем примере показано, как вращать материальный шар, созданный по умолчанию в вашем проекте.

  1. If you created the C++ project for Visual Studio:Если вы создали проект C ++ для Visual Studio :

    1. Choose your C++ project in the UNIGINE SDK Browser and click the Open Code IDE button to open the project in IDE.
      Выберите свой проект C ++ в браузере UNIGINE SDK и нажмите кнопку Open Code IDE, чтобы открыть проект в IDE.

    If you created C++ GNU make project:Если вы создали C++ GNU make project:

    1. On the created C++ project, click on the Other Actions button and then the Open Folder button.

      В созданном проекте C ++ нажмите кнопку Other Actions, а затем кнопку Open Folder.

    2. Go to the <YOUR PROJECT>\source\ folder and open the AppWorldLogic.cpp file with any plain text editor.Перейдите в папку <YOUR PROJECT>\source\ и откройте файл AppWorldLogic.cpp в любом текстовом редакторе.
  2. Write (or copy) the following code in your project's AppWorldLogic.cpp file.
    Исходный код (C++)
    #include "AppWorldLogic.h"
    #include <UnigineWorld.h>
    #include <UnigineGame.h>
    
    using namespace Unigine;
    
    // define pointer to node
    NodePtr node;
    
    AppWorldLogic::AppWorldLogic() {
    	
    }
    
    AppWorldLogic::~AppWorldLogic() {
    	
    }
    
    int AppWorldLogic::init() {
    	// get the material ball node
    	node = World::getNodeByName("material_ball");
    	return 1;
    }
    
    int AppWorldLogic::shutdown() {
    	return 1;
    }
    
    int AppWorldLogic::update() {
    	// get the frame duration
    	float ifps = Game::getIFps();
    
    	// set the angle of rotation
    	double angle = ifps * 90.0f;
    
    	// set the angle to the transformation matrix
    	Unigine::Math::Mat4 transform = node->getTransform();
    	transform.setRotateZ(angle);
    
    	// set new transformation to the node
    	node->setTransform(node->getTransform() * transform);
    
    	return 1;
    }
    
    int AppWorldLogic::postUpdate() {
    	return 1;
    }
    
    int AppWorldLogic::updatePhysics() {
    	return 1;
    }
    
    int AppWorldLogic::save(const Unigine::StreamPtr &stream) {
    	UNIGINE_UNUSED(stream);
    	return 1;
    }
    
    int AppWorldLogic::restore(const Unigine::StreamPtr &stream) {
    	UNIGINE_UNUSED(stream);
    	return 1;
    }
    Напишите (или скопируйте) следующий код в файл AppWorldLogic.cpp вашего проекта.
    Исходный код (C++)
    #include "AppWorldLogic.h"
    #include <UnigineWorld.h>
    #include <UnigineGame.h>
    
    using namespace Unigine;
    
    // define pointer to node
    NodePtr node;
    
    AppWorldLogic::AppWorldLogic() {
    
    }
    
    AppWorldLogic::~AppWorldLogic() {
    
    }
    
    int AppWorldLogic::init() {
    	// get the material ball node
    	node = World::getNodeByName("material_ball");
    	return 1;
    }
    
    int AppWorldLogic::shutdown() {
    	return 1;
    }
    
    int AppWorldLogic::update() {
    	// get the frame duration
    	float ifps = Game::getIFps();
    
    	// set the angle of rotation
    	double angle = ifps * 90.0f;
    
    	// set the angle to the transformation matrix
    	Unigine::Math::Mat4 transform = node->getTransform();
    	transform.setRotateZ(angle);
    
    	// set new transformation to the node
    	node->setTransform(node->getTransform() * transform);
    
    	return 1;
    }
    
    int AppWorldLogic::postUpdate() {
    	return 1;
    }
    
    int AppWorldLogic::updatePhysics() {
    	return 1;
    }
    
    int AppWorldLogic::save(const Unigine::StreamPtr& stream) {
    	UNIGINE_UNUSED(stream);
    	return 1;
    }
    
    int AppWorldLogic::restore(const Unigine::StreamPtr& stream) {
    	UNIGINE_UNUSED(stream);
    	return 1;
    }
  3. If you use Visual Studio, do the following: Если вы используете Visual Studio, сделайте следующее:

    1. Before compiling your code, check that the appropriate platform and configuration settings for your project are set correctly.
      Перед компиляцией кода убедитесь, что для вашего проекта установлены правильные параметры платформы и конфигурации.
    2. Build your project by clicking Build -> Build Solution in Visual Studio.
      Создайте свой проект, щелкнув Build -> Build Solution в Visual Studio.
    3. Start your project by clicking Debug -> Start in a proper mode in Visual Studio.
      Начните свой проект, щелкнув Debug -> Start в соответствующем режиме в Visual Studio.

    If you created a GNU Make project:Если вы создали GNU Make project:

    1. Execute the make command in the terminal to compile the application.
      Shell-команды
      make
      Выполните команду make в терминале, чтобы скомпилировать приложение.
      Shell-команды
      make
    2. Launch the application by using the run script.Запустите приложение с помощью сценария run .
Примечание
To run the debug version of your project from SDK Browser, enable the Debug mode in Customize Run Options. Чтобы запустить отладочную версию вашего проекта из браузера SDK, включите режим Debug в Customize Run Options.
Последнее обновление: 16.08.2024
Build: ()