для этой страницы,
отображается код на другом
Programming Quick Start
The primary goal of this quick start tutorial is to introduce you to programming basics in UNIGINE. Basically, this tutorial covers the C++ API workflow, however, the principles are almost the same for all programming workflows available in UNIGINE, as well as code snippets provided in this tutorial are available in C++, C# and UnigineScript. In the framework of this tutorial we are going to develop a Project which involves basic UNIGINE functionality (managing objects, lights, cameras; logging, console, intersections, controls, GUI, properties, etc). Upon the completion of this tutorial, you'll be able to solve the following tasks:
- The basic scene objects and coordinate system
- Logging and printing messages to console
- Saving and loading a world
- Closing the application
- Working with smart pointers
- Creating and deleting nodes at runtime
- Creating and setting up a camera
- Creating and setting up light sources
- Creating, applying and deleting materials at runtime
- Managing existing scene objects
- Performing basic transformations (move, rotate, scale)
- Making the application frame rate independent
- Managing intersections
- Getting and managing user inputs
- Implementing game logic and use properties
- Creating user interface
For your convenience each of the sections of this tutorial is dedicated to solving a certain task (see the list above) and divided into two sub-parts:
- Basic part - describing some basic examples of how to solve the task of the section, which can be used as a HOWTO.
- Project Progress - giving a detailed description of solving the task of the section in the framework of the Project and a video.
- Source Files - providing a source code that can be copied and pasted to the corresponding source files of your Project.
Tutorial Project Design Requirements#
Before we dive into developing our project let us describe the basic functions and appearance of our application.
Our first UNIGINE application is going to have the following features:
- One free-roaming camera.
- Three light sources to light our scene: world, projected and omni.
- Graphical user interface (see image above).
- Moving and rotating the initial set of objects (4 colored boxes) and changing their scale once in 2 seconds.
- Changing the time of the day in two modes:
- automatic - if the corresponding checkbox is checked.
- manual - by changing the slider position.
- Loading a default world by clicking the "Load World" button.
- Loading a mesh-file by clicking the "Load Mesh" button and performing the following actions:
- Specifying the file in the File Open Dialog.
- Setting the name and location coordinates for the object to be added to scene.
- Closing the application if the "Quit" button was clicked or if "Q" key was pressed on the keyboard.
- Selecting an object on the scene by clicking the right mouse button.
- Highlighting currently selected object by changing its material to the default mesh_base (using property-based logic).
- Deleting currently selected object (or all objects of the scene) using the "Delete" button and the combobox.
So, let's get started and make our first UNIGINE project!