This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
UnigineEditor
界面概述
资产工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
Setting Up Properties
照明
Landscape Tool
Sandworm
使用编辑器工具执行特定任务
Extending Editor Functionality
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
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
创建内容
Content Optimization
Materials
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: 2021-12-13
Build: ()