UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
FAQ
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes

Unigine::Config Class

Header: #include <UnigineConfig.h>

The Config class is used to read values (settings) from the engine configuration file (unigine.cfg by default) and write back into it.

Notice
By using the Config class functionality, it is possible to read from and write to the engine configuration file only (the file specified by using the -engine_config command-line option). To write application-specific settings to a different file, use the File, Xml or Json classes.

Use the appropriate methods depending on the type of the target item. For example, to get the values of the following items, you should use the getInt() and getString() methods corespondingly:

Source code (XML)
...
<item name="show_fps" type="int">1</item>
<item name="system_script" type="string">unigine_project/unigine.usc</item>
...

Usage Example#

By using the Config class, you can save custom settings to the configuration file and then restore it when required. For example:

AppSystemLogic.h:

Source code (C++)
#include <UnigineLogic.h>
#include <UnigineConfig.h>
#include <UnigineConsole.h>

using namespace Unigine;

class AppSystemLogic : public Unigine::SystemLogic {
	
public:
	AppSystemLogic();
	virtual ~AppSystemLogic();
	
	virtual int init();
	
	virtual int update();
	virtual int render();
	
	virtual int shutdown();
	virtual int destroy();

private:

	Unigine::String player_avatar;
	int skip_cutscenes;
	int blood_enabled;
	int bulletshell_lifetime;
};

AppSystemLogic.cpp:

Source code (C++)
#include "AppSystemLogic.h"

int AppSystemLogic::init() {

	// get the Config instance
	Config *config = Config::get();
	// read custom user-defined settings from the configuration file
	player_avatar = config->getString("player_avatar", "usa_soldier1");
	skip_cutscenes = config->getBool("skip_cutscenes", false);
	blood_enabled = config->getBool("blood_enabled", false);
	bulletshell_lifetime = config->getInt("bulletshell_lifetime", 100);

	return 1;
}

int AppSystemLogic::shutdown() {

	// check whether data can be written to the configuration file 
	if (Console::get()->getInt("config_readonly")) Console::get()->setInt("config_readonly",0);
	// get the Config instance
	Config *config = Config::get();
	// write the custom settings to the configuration file
	config->setString("player_avatar", player_avatar.get());
	config->setBool("skip_cutscenes", skip_cutscenes);
	config->setBool("blood_enabled", blood_enabled);
	config->setInt("bulletshell_lifetime", bulletshell_lifetime);
	// save the configuration file
	config->save("unigine_project/unigine.cfg");

	return 1;
}

See Also#

Config Class

Members


Config * get( )

Returns a pointer to the existing instance of the Config class.
Source code (C++)
Config::get()->getInt("show_fps");

Return value

A pointer to the instance of the Config class.

void setBool( const char * name, int value )

Sets a value of the given boolean setting. If the setting with this name already exists, its value is overwritten.

Arguments

  • const char * name - Name of the setting.
  • int value - Boolean value (0 or 1). 0 stands for false, 1 stands for true.

int getBool( const char * name )

Reads the value of the given boolean setting.

Arguments

  • const char * name - Name of the setting.

Return value

Boolean value (0 or 1) of the setting. 0 stands for false, 1 stands for true.

int getBool( const char * name, int value )

Reads the value of the given boolean setting. Returns the value specified as the second argument if the setting isn't found.

Arguments

  • const char * name - Name of the setting.
  • int value - Custom value to be returned if the setting isn't found.

Return value

Boolean value (0 or 1) of the setting. 0 stands for false, 1 stands for true.

int isExist( const char * name )

Checks if the setting with the given name exists.

Arguments

  • const char * name - Name of the setting.

Return value

1 if the setting exists; otherwise, 0.

void setFloat( const char * name, float value )

Sets a value of the given float setting. If the setting with this name already exists, its value is overwritten.

Arguments

  • const char * name - Name of the setting.
  • float value - Float value of the setting.

float getFloat( const char * name, float value )

Reads the value of the given float setting. Returns the value specified as the second argument if the setting isn't found.

Arguments

  • const char * name - Name of the setting.
  • float value - Custom value to be returned if the setting isn't found.

Return value

Float value of the setting.

float getFloat( const char * name )

Reads the value of the given float setting.

Arguments

  • const char * name - Name of the setting.

Return value

Float value of the setting.

void setInt( const char * name, int value )

Sets a value of the given integer setting. If the setting with this name already exists, its value is overwritten.

Arguments

  • const char * name - Name of the setting.
  • int value - Integer value of the setting.

int getInt( const char * name )

Reads the value of the given integer setting.

Arguments

  • const char * name - Name of the setting.

Return value

Integer value of the setting.

int getInt( const char * name, int value )

Reads the value of the given integer setting. Returns the value specified as the second argument if the setting isn't found.

Arguments

  • const char * name - Name of the setting.
  • int value - Custom value to be returned if the setting isn't found.

Return value

Integer value of the setting.

void setString( const char * name, const char * value )

Sets a value of the given string setting. If the setting with this name already exists, its value is overwritten.

Arguments

  • const char * name - Name of the setting.
  • const char * value - String value of the setting.

const char * getString( const char * name, const char * value )

Reads the value of the given string setting. Returns the value specified as the second argument if the setting isn't found.

Arguments

  • const char * name - Name of the setting.
  • const char * value - Custom value to be returned if the setting is found.

Return value

String value of the setting.

const char * getString( const char * name )

Reads the value of the given string setting.

Arguments

  • const char * name - Name of the setting.

Return value

String value of the setting.

int flush( )

Flushes config into the current file.

Return value

1 if the config is successfully flushed into the file; otherwise, 0.

int load( const char * name )

Loads config from the file.

Arguments

  • const char * name - Configuration file name.

Return value

1 if the config is successfully loaded from the file; otherwise, 0.

void remove( const char * name )

Removes the setting with the given name from the configuration file.

Arguments

  • const char * name - Name of the setting.

int save( const char * name )

Saves config into the file.

Arguments

  • const char * name - Configuration file name.

Return value

1 if the config is successfully saved into the file; otherwise, 0.
Last update: 2018-12-27