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
编程
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
应用程序接口
Containers
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
CIGI Client Plugin
Rendering-Related Classes

Unigine::WorldLogic Class

Header: #include <UnigineLogic.h>

WorldLogic class is used to control the logic of the world. Methods of this class are called after corresponding methods of the world script.

WorldLogic class methods are called only if the world is loaded.

See Also#

WorldLogic Class

Members


int init ( ) #

Engine calls this function on world initialization and initializes resources for a world scene during the world start. Similar to the world script's init() function.

Return value

Returns 1 if there were no errors; otherwise, 0.

int shutdown ( ) #

Engine calls this function on world shutdown. Here you can delete resources that were created during world script execution to avoid memory leaks. Similar to the world script's shutdown() function.

Return value

Returns 1 if there were no errors; otherwise, 0.

int destroy ( ) #

Engine calls this function when the video mode is changed or application is restarted (video_restart is called). It is used to destroy all created resources (e.g. dynamic textures, etc.) to avoid crashes due to invalid pointers, when the context is re-initialized. Similar to the world script's destroy() function.

Return value

Returns 1 if there were no errors; otherwise, 0.

int update ( ) #

Engine calls this function before updating each render frame. You can specify here all logic-related functions you want to be called every frame while your application executes. Similar to the world script's update() function.

Return value

Returns 1 if there were no errors; otherwise, 0.

void updateSyncThread ( int id, int size ) #

Engine calls this function before the update() and the render() (prior to updating nodes PlayerSpectator, ParticleSystem, etc.). Limitations: you should not create or modify nodes unless you're absolutely sure that no other thread can do the same.
Notice
Nodes created in this function are not registered in the Editor, so they should be managed manually using release()/grab()/isOwner() methods.
This function is called size times each frame and executed in parallel threads. This function blocks the Main Thread until all size calls are completed. Unlike the SyncThread() this function has got less time for execution, but it is more secure and is suitable for complex calculations to be applied to the current node.

Arguments

  • int id - Current thread, that called this function.
  • int size - Number of threads for execution.

void updateAsyncThread ( int id, int size ) #

Engine calls this function after execution of all updateSyncThread() functions. Like the updateSyncThread() it is called size times each frame and executed in parallel with user's render() and flush() functions, but does not block the Main Thread until the Engine reaches the doSwap() stage (similar to the flush() function). This function is the smoothest and does not cause spikes, it has a lot of time for execution. But it also has a lot of limitations. It is suitable for certain heavy resource-consuming calculations calculations that should be performed each frame, such as pathfinding, generation of procedural textures, and so on.

Arguments

  • int id - Current thread, that called this function.
  • int size - Number of threads for execution.

int render ( ) #

Engine calls this function before rendering each render frame. You can correct behavior after the state of the node has been updated. Similar to the world script's render() function.

Return value

Returns 1 if there were no errors; otherwise, 0.

int flush ( ) #

Engine calls this function before updating each physics frame. This function is used to control physics in your application. The engine calls flush() with the fixed rate (60 times per second by default) regardless of the fps number. Similar to the world script's flush() function.

Return value

Returns 1 if there were no errors; otherwise, 0.

int save ( const StreamPtr & stream ) #

Engine calls this function when the world is saving its state (state_save is called). Here you can save custom user data to a file. Similar to the world script's save() function.

Arguments

  • const StreamPtr & stream - Data stream.

Return value

Returns 1 if there were no errors; otherwise, 0.

int restore ( const StreamPtr & stream ) #

Engine calls this function when the world is restoring its state (state_restore is called). Restore custom user data to a file here. Similar to the world script's restore() function.

Arguments

  • const StreamPtr & stream - Stream for restored data.

Return value

Returns 1 if there were no errors; otherwise, 0.
Last update: 2019-07-18