This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Materials and Shaders
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
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
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Unigine::Plugins::Syncker::Slave Class

Warning
The functionality described in this article is not available in the Community SDK edition.
You should upgrade to Sim SDK edition to use it.
Header: #include <plugins/UnigineSyncker.h>
Inherits from: Syncker

This class represents the slave interface of the Syncker.

Notice
Syncker plugin must be loaded.

Slave Class

Enums

CALLBACK_INDEX#

NameDescription
SESSION_STARTED = 0Callback function to be fired on starting a session.
Callback signature:
Source code
callback_function_name(void)
SESSION_FINISHED = 1Callback function to be fired on closing a session.
Callback signature:
Source code
callback_function_name(void)
MASTER_CONNECTED = 2Callback function to be fired on successful connection to the Master.
Callback signature:
Source code
callback_function_name(void)
MASTER_DISCONNECTED = 3Callback function to be fired on disconnecting from the Master. The reason for disconnection specified in string format ("disconnected by master", "timeout", etc.)
Callback signature:
Source code
callback_function_name(const char *reason)
NODE_LOADED = 4Callback function to be fired on creating a node by the Master on the Slave via loadNode() / loadNodeReference() / createNode().
Callback signature:
Source code
callback_function_name(const NodePtr &node)

SKIP_FLAGS#

Flags defining data from the Master to be ignored by the Slave.
NameDescription
WORLD_LOAD = 1Loading worlds.
GAME = 1 << 1Game class (time and speed), for particles — ifps and seed.
PLAYER = 1 << 2Current Master camera synchronization (every frame).
RENDER = 1 << 3Render and post-effects settings.
NODES = 1 << 4Nodes.
MATERIALS = 1 << 5Materials.
SET_PLAYER = 1 << 6Ignoring setSlavePlayer() calls by the Master.
VIEW_OFFSET = 1 << 7Changing view offset parameters.
USER_DATA = 1 << 8Processing user packets sent via sendMessage().
NODE_LOAD = 1 << 9Loading nodes from *.node files.
NODEREF_LOAD = 1 << 10Loading node references from *.node files.
NODE_CREATE = 1 << 11Node creation.
NODE_ID_REGISTER = 1 << 12Links between dynamic nodes of the Master and Slaves (via ID) created via loadNode(), createNode(), etc.
NODE_DELETE = 1 << 13Node removal.
RUN_CONSOLE = 1 << 14Running console commands.
PROJECTIONS = 1 << 15Projections configuration. Can be disabled for Slaves having their projections configured manually via API.

Members


int getMasterNodeID ( int slave_node_id ) #

Returns the ID of a dynamic node on the Master by its local ID on the Slave. A Slave does not create an exact copy of a node created on the Master, their IDs do not match. So, knowing an ID of a local copy of a node created on the Master, you can easily find its original on the Master. This can be used in user messages, when you need to apply some specific modifications to source node on the Master.

Arguments

  • int slave_node_id - Node's ID on the Slave.

Return value

ID of the node on the Master.

int getSlaveNodeID ( int master_node_id ) #

Returns the local ID of a dynamic node on the Slave by its ID on the Master. A Slave does not create an exact copy of a node created on the Master, their IDs do not match. So, if you created a node on the Master and then called the Syncker::Master::createNode() method, you can easily find its copy on the current Slave. This can be used in user messages, when you need to apply some specific modifications to a Slave's copy of a node, that was created on the Master.

Arguments

  • int master_node_id - Node's ID on the Master.

Return value

ID of the node on the Slave.

void addSyncNode ( const Ptr<Node> & node, int master_node_id ) #

Enables synchronization of parameters of the given node via the UDP protocol.
Notice
Scene nodes are not synchronized by default, this method is used to add a particular node to the synchronization queue.

Arguments

  • const Ptr<Node> & node - Node to synchronize.
  • int master_node_id - ID of the node on the Master.

void addSyncNodeID ( int slave_node_id, int master_node_id ) #

Enables synchronization of parameters of the given node via the UDP protocol.
Notice
Scene nodes are not synchronized by default, this method is used to add a particular node (by its id) to the synchronization queue.

Arguments

  • int slave_node_id - ID of the node on the Slave.
  • int master_node_id - ID of the node on the Master.

bool removeSyncNode ( const Ptr<Node> & node ) #

Removes the specified node from the synchronization queue.

Arguments

  • const Ptr<Node> & node - Node to be removed.

Return value

true if the node was successfully removed from the synchronization queue; otherwise, false.

bool removeSyncNodeID ( int slave_node_id ) #

Removes the node with the given number from the synchronization queue.

Arguments

  • int slave_node_id - Node number in the synchronization queue.

Return value

true if the node was successfully removed from the synchronization queue; otherwise, false.

long long getID ( ) #

Returns the current ID of the Slave.

Return value

ID of the slave combined as follows: IP address (32 bits) + port number (16 bits).

void setSkipFlags ( int flags ) #

Sets the skip flags enabling you to ignore certain information from the Master.

Arguments

  • int flags - A combination of skip flags to be used, for example:
    Source code (C++)
    slave->setSkipFlags(GAME | WORLD_LOAD | USER_DATA);

int getSkipFlags ( ) #

Returns the current skip flags combination enabling you to ignore certain information from the Master.

Return value

A combination of currently used skip flags.

void * addCallback ( Slave::CALLBACK_INDEX callback, Unigine::CallbackBase * func ) #

Adds a callback of the specified type. Callback functions can be used to determine actions to be performed when sending or receiving user messages, as well as when changing settings on the Master or a Slave. The signature of the callback function can be one of the following:
Source code (C++)
// for the Syncker::Slave::SESSION_STARTED type
void callback_function_name(void);

// for the Syncker::Slave::SESSION_FINISHED type
void callback_function_name(void);

// for the Syncker::Slave::MASTER_CONNECTED type
void callback_function_name(void);

// for the Syncker::Slave::MASTER_DISCONNECTED type
void callback_function_name(const char *reason);

// for the Syncker::Slave::NODE_LOADED type
void callback_function_name(const NodePtr &node);

Arguments

Return value

Number of the last added callback of the specified type, if the callback was added successfully; otherwise, -1.

bool removeCallback ( Slave::CALLBACK_INDEX callback, void * func ) #

Removes a given callback from the list of callbacks of the specified type. Callback functions can be used to determine actions to be performed when sending or receiving user messages, as well as when changing settings on the Master or a Slave.

Arguments

Return value

true if the position callback with the given ID was removed successfully; otherwise false.

void clearCallbacks ( Slave::CALLBACK_INDEX callback ) #

Clears all added callbacks of the specified type. Callback functions can be used to determine actions to be performed when sending or receiving user messages, as well as when changing settings on the Master or a Slave.

Arguments

Last update: 10.10.2022
Build: ()