This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Version Control
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
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
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

API Migration

Major Changes#

Breaking Changes#

UNIGINE and User Plugins#

The plugin files structure has been rearranged, approach to their naming has changed as well.

The naming convention is:

  • <vendor_name><plugin_name>_plugin_<precision>_x64<debug_version>.* for Windows binaries
  • lib<vendor_name><plugin_name>_plugin_<precision>_x64<debug_version>.so for Linux binaries
  • <vendor_name><plugin_name>.h for headers

The paths to plugin files are as follows.

For UNIGINE plugins:

  • binaries — bin\plugins\Unigine\<plugin_name> (e.g. bin\plugins\Unigine\ARTTracker\UnigineARTTracker_plugin_double_x64d.dll)
  • headers — include\plugins\Unigine\<plugin_name>\Unigine<plugin_name>.h (e.g. include\plugins\Unigine\ARTTracker\UnigineARTTracker.h)

For user plugins:

  • binaries — bin\plugins\<vendor_name>\<plugin_name> (e.g. bin\plugins\Vendor\Plugin\VendorPlugin_plugin_double_x64.dll)
  • headers — include\plugins\<vendor_name>\<plugin_name>\<vendor_name><plugin_name>.h (e.g. include\plugins\Vendor\Plugin\VendorPlugin.h)

Adjust the build paths and plugin names for all plugins in the projects that you've migrated.

Gamepad and Joystick Input#

The following changes were made for this release:

  1. ControlsGamePad and ControlsJoystick classes were completely replaced with InputGamepad and InputJoystick respectively with all necessary functions migrated.

    Instances of these classes are managed by the Engine, therefore, you should not create or delete them manually anymore. Previously the number of gamepads was predefined and equal to 4, so you had to get active devices via the corresponding methods (GetActiveGamePad() and GetCountActiveGamePads()), now these methods are removed, because the numbers of gamepads and joysticks changes dynamically as you connect or disconnect devices (these numbers are not limited by the Engine, while there is an SDL limit of 16 devices). To get the number of currently connected joysticks or gamepads use Input.GetNumGamePads() and Input.GetNumJoysticks().

    You can get a particular joystick or gamepad (as InputGamePad or InputJoystick class instances) by its number via the Input.GetGamePad() and Input.GetJoystick() methods.

    In case a joystick/gamepad is disconnected the corresponding InputGamePad / InputJoystick class instance is not removed from the list, you can check its availability via the isAvailable method.

    New connected devices are become bound to the first InputGamePad / InputJoystick class instance that is unbound (isAvailable == false) and become available again. In case there are no unbound instances a new one is created and added to the list.

  2. Gamepads and joysticks are now updated automatically by the Engine, so the updateEvents() method is removed from InputGamePad and InputJoystick classes as unnecessary.
  3. Event buffer is now available for gamepads and joysticks enabling you to avoid lost input events. You can get the last gamepad button event from the buffer via the InputGamepad.GetButtonEvent() method and get the whole current buffer via InputGamepad.GetButtonEvents(). The same for joysticks (InputJoystick.GetButtonEvent() and InputJoystick.GetButtonEvents() respectively).
  4. A new set of callbacks has been added to the Input class for both, joysticks and gamepads, enabling you to track various events:

See the instructions and examples below to migrate your code related to gamepads and joysticks to UNIGINE 2.17 properly:

  • Remove all calls to the ControlsJoystick.UpdateEvents() method.
  • Remove all lines creating and deleting instances of InputGamePad and InputJoystick classes.
  • Replace ControlsJoystick -> InputJoystick
  • Replace InputGamePad.BUTTON* -> Input.GAMEPAD_BUTTON*
  • Replace InputGamePad.AXIS* -> Input.GAMEPAD_AXIS*
  • Replace ControlsJoystick.POV* -> Input.JOYSTICK_POV*
UNIGINE 2.16.1 UNIGINE 2.17
Source code (C#)
InputGamePad.BUTTON runButton = InputGamePad.BUTTON.SHOULDER_RIGHT;

InputGamePad.BUTTON jumpButton = InputGamePad.BUTTON.A;

InputGamePad.BUTTON crouchButton = InputGamePad.BUTTON.SHOULDER_LEFT;

// getting the first active gamepad
if (Input.CountActiveGamePads > 0)
   		 gamepad = Input.GetActiveGamePad(0);
Source code (C#)
Input.GAMEPAD_BUTTON runButton = Input.GAMEPAD_BUTTON.SHOULDER_RIGHT;

Input.GAMEPAD_BUTTON jumpButton = Input.GAMEPAD_BUTTON.A;

Input.GAMEPAD_BUTTON crouchButton = Input.GAMEPAD_BUTTON.SHOULDER_LEFT;

// getting the first active gamepad
for (int i = 0; i < Input.NumGamePads; i++)
{
	 Unigine.InputGamePad gamepad = Input.GetGamePad(i);
	 if (game_pad.IsAvailable)
	 {
		 last_gamepad = gamepad;
		 break;
	 }
 }
Source code (C#)
int JoysticksCount = 4;
List<InputJoystick> joysticks = new List<ControlsJoystick>();
for (int i = 0; i < JoysticksCount; i++)
{
	// create new joystick
	ControlsJoystick joystick = new ControlsJoystick(i);
	if (!joystick)
		break;
	joysticks.Add(joystick);
}

for (int i = 0; i < joysticks.Count; i++)
		{
			JoysticksInfo[i].isAvailable = joysticks[i].IsAvailable;
			if (!JoysticksInfo[i].isAvailable)
				continue;

		}
			joysticks[i].UpdateEvents();

			// update pressed button
			for (int j = 0; j < joysticks[i].NumButtons; j++)
				if (joysticks[i].GetButton(j) != 0)
				{
					JoysticksInfo[i].lastPressedButton = j;
					break;
				}
Source code (C#)
List<InputJoystick> joysticks = new List<InputJoystick>();
for (int i = 0; i < Input.NumJoystics; i++)
{
	// get joystick
	InputJoystick joystick = Input.GetJoystick(i);
	if (!joystick)
		break;

	joysticks.Add(joystick);
}
int JoysticksCount = joysticks.Count;

for (int i = 0; i < joysticks.Count; i++)
		{
			JoysticksInfo[i].isAvailable = joysticks[i].IsAvailable;
			if (!JoysticksInfo[i].isAvailable)
				continue;
		}
		
// update pressed button
			for (int j = 0; j < joysticks[i].NumButtons; j++)
			{
				if (joysticks[i].IsButtonPressed((uint)j))
				{
					JoysticksInfo[i].lastPressedButton = j;
					break;
				}
			}

Engine Background Update#

Added a new background update mode to ensure rendering for windows minimized to tray (this can be useful for grabbing frame sequences in background when the application window is minimized). Thee modes are available now:

To manage modes use SetBackgroundUpdate() / GetBackgroundUpdate() methods.

UNIGINE 2.16.1 UNIGINE 2.17
Source code (C#)
Engine.BackgroundUpdate = true;
Source code (C#)
Engine.BackgroundUpdate = Engine.BACKGROUND_UPDATE.BACKGROUND_UPDATE_RENDER_NON_MINIMIZED;

Asynchronous GPU-to-CPU Data Transfer#

Implementation of Vulkan and DirectX 12 support has changed a lot, and the old-style way of getting GPU-generated data on CPU has become invalid.

Thus, we have removed Texture::getImage/StructuredBuffer::getData() methods and added the following ones instead:

All other methods transferring data generated by GPU to CPU (returning the result as an Image) have been replaced with the ones that return their result as a Texture. In order to get this data as Image (the way it was before) you'll have to transfer the obtained data to CPU using a synchronous or asynchronous transferring method of the Render class - Render::transferTextureToImage() or Render::asyncTransferTextureToImage() respectively. This is relevant for methods like Viewport::renderImage*(), Render::renderImage*(), FieldShoreline::createShorelineDistanceField(), WidgetSpriteViewport::renderTexture(), and others. Render::compressImage()/Render::asyncCompressImage() represent the only exception - they cannot output the result to a texture accepting callbacks as arguments.

UNIGINE 2.16.1
Source code (C#)
// creating a new image
Image image = new Image();

// transferring GPU data to CPU
viewport.RenderImage2D(player.Camera, image, width, height);

// flipping image if necessary
if (!Render.IsFlipped)
	image.FlipY();
	
// saving an image to a file
image.Save("screenshot.dds");
UNIGINE 2.17
Source code (C#)
// creating a new texture
Texture texture = new Texture(); 

// rendering to a texture
viewport.RenderTexture2D(player.Camera, texture, width, height);

// transferring texture (GPU) data to CPU
Render.AsyncTransferTextureToImage(
	null,
	(Image image) =>
		{
			// flipping image if necessary
			if (!Render.IsFlipped)
				image.FlipY();

			// saving an image to a file
			image.Save("screenshot.dds");
		},
	texture);

Other related API changes:

Body Class#

UNIGINE 2.16.1 UNIGINE 2.17
SetObject( Object, bool ) Return value changed.

Camera Class#

Controls Class#

UNIGINE 2.16.1 UNIGINE 2.17
TYPE.CONTROLS_GAMEPAD Removed.
TYPE.CONTROLS_JOYSTICK Removed.

CustomSystemProxy Class#

DecalMesh Class#

Displays Class#

New Functions

Editor Class#

EditorLogic Class#

UNIGINE 2.16.1 UNIGINE 2.17
Render( EngineWindowViewport ) Set of arguments changed.

Engine Class#

EngineWindow Class#

UNIGINE 2.16.1 UNIGINE 2.17
Enum STATE Removed. Use TYPE instead.
Enum GROUP_TYPE Removed. Use EngineWindowGroup.GROUP_TYPE instead.
Property Camera Removed. Use EngineWindowViewport.Camera instead.
Property Main Removed. Use EngineWindowViewport.Main instead.
Property IsSeparateWindow Removed.
Property IsSeparateGroup Removed.
Property IsNestedWindow Removed.
Property IsNestedGroup Removed.
Property IsWindow Removed.
Property IsGroup Removed.
Property State Removed.
Property GroupType Removed. Use EngineWindowGroup.GroupType instead.
Property ConsoleUsage Removed. Use EngineWindowViewport.ConsoleUsage instead.
Property ProfilerUsage Removed. Use EngineWindowViewport.ProfilerUsage instead.
Property VisualizerUsage Removed. Use EngineWindowViewport.VisualizerUsage instead.
Property ResizeBorderSize Removed.
Property IsFullscreen Removed. Use EngineWindowViewport.IsFullscreen instead.
Property GroupUsage Removed.
Property NestedUsage Removed.
Property NumNestedWindows Removed. Use EngineWindowGroup.NumNestedWindows instead.
Property CurrentTab Removed. Use EngineWindowGroup.CurrentTab instead.
Property VideoModeName Removed.
Property SkipRenderEngine Removed. Use EngineWindowViewport.SkipRenderEngine instead.
Property ParentGroup Type arguments changed.
Property GlobalParentGroup Type changed.
GetIcon( Image ) Return value changed.
SetMouseGrab( bool ) Removed. Use EngineWindowViewport.SetMouseGrab( bool ) instead.
GetHitTestResult( ivec2 ) Set of arguments changed.
AddChild( Widget, int ) Removed.
RemoveChild( Widget ) Removed.
GetChild( int ) Removed.
GetNumChildren( ) Removed.
GetNestedWindow( int ) Removed. Use EngineWindowGroup.GetNestedWindow( int ) instead.
GetNestedWindowIndex( EngineWindow ) Removed. Use EngineWindowGroup.GetNestedWindowIndex( EngineWindow ) instead.
ContainsNestedWindow( EngineWindow ) Removed. Use EngineWindowGroup.ContainsNestedWindow( EngineWindow ) instead.
ContainsNestedWindowGlobal( EngineWindow ) Removed. Use EngineWindowGroup.ContainsNestedWindowInHierarchy( EngineWindow ) instead.
IsGlobalChildOf( EngineWindowGroup ) Set of arguments changed.
GetTabWidth( int ) Removed. Use EngineWindowGroup.GetTabWidth( int ) instead.
GetTabHeight( int ) Removed. Use EngineWindowGroup.GetTabHeight( int ) instead.
GetTabBarWidth( int ) Removed. Use EngineWindowGroup.GetTabBarWidth( int ) instead.
GetTabBarHeight( int ) Removed. Use EngineWindowGroup.GetTabBarHeight( int ) instead.
getTabLocalPosition( int ) Removed. Use EngineWindowGroup.GetTabLocalPosition( int ) instead.
GetTabBarLocalPosition( int ) Removed. Use EngineWindowGroup.GetTabBarLocalPosition( int ) instead.
SetHorizontalTabWidth( int, int ) Removed. Use EngineWindowGroup.SetHorizontalTabWidth( int, int ) instead.
SetVerticalTabHeight( int, int ) Removed. Use EngineWindowGroup.SetVerticalTabHeight( int, int ) instead.
SetSeparatorPosition( int, int ) Removed. Use EngineWindowGroup.SetSeparatorPosition( int, int ) instead.
GetSeparatorPosition( int ) Removed. Use EngineWindowGroup.GetSeparatorPosition( int ) instead.
SetSeparatorValue( int, float ) Removed. Use EngineWindowGroup.SetSeparatorValue( int, float ) instead.
GetSeparatorValue( int ) Removed. Use EngineWindowGroup.GetSeparatorValue( int ) instead.
SwapTabs( int, int ) Removed. Use EngineWindowGroup.SwapTabs( int, int ) instead.
IsHover( ivec2 ) Removed.
IsClientHover( ivec2 ) Removed.
GetHoverTabBar( ivec2, out ivec2, out ivec2 ) Removed.
GetHoverTabBarArea( ivec2, out ivec2, out ivec2 ) Removed.
GetVideoModeName( ) Removed.
DisableFullscreen( ) Removed. Use EngineWindowViewport.DisableFullscreen( ) instead.
EnableFullscreen( int, int ) Removed. Use EngineWindowViewport.EnableFullscreen( int, int ) instead.
IsChild( Widget ) Removed. Use EngineWindowViewport.IsChild( Widget ) instead.
Arrange( ) Removed.
Expand( ) Removed.

New Functions

New Properties

FieldShoreline Class#

UNIGINE 2.16.1 UNIGINE 2.17
CreateShorelineDistanceField( Texture, int, int, int ) Set of arguments changed.

Gui Class#

Image Class#

ImageConverter Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property GGXMipmapsQuality Changed type.
Run( Converted, Image ) Set of arguments changed.

New Functions

Input Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property CountActiveGamePads Removed.
Property CountGamePads Renamed as NumGamePads.
GetActiveGamePad( int ) Removed.
Enum DEVICE_TYPE Renamed as DEVICE.
NUM_GAME_PADS Removed.
NUM_JOYSTICKS Removed.

New Functions

New Properties

InputGamePad Class#

JointWheel Class#

Light Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property DepthTexture Renamed as ShadowTexture.
Property RenderTransparent Renamed as RenderOnWater.
Property RenderWater Renamed as RenderOnTransparent.

LightEnvironmentProbe Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property ReflectionViewportMask Renamed as GrabViewportMask.
Property BoxProjection Removed. Use ProjectionMode instead.
Property Dynamic Removed. Use GrabMode instead.
Property BakeMipmapsQuality Removed.
Property Parallax Renamed as SphereReflectionParallax.
Property BoxGI Renamed as BoxAmbientParallax.
Property ZFar Renamed as GrabZFar.
Property ZNear Renamed as GrabZNear.
Property Supersampling Renamed as GrabSupersampling.
Property Resolution Renamed as GrabResolution.
Property RenderFacesPerFrame Renamed as GrabDynamicFacesPerFrame.
Property DistanceScale Renamed as GrabDistanceScale.
Property DynamicCorrectRoughness Removed. Use GrabGGXMipmapsQuality instead.
Property UseSunColor Renamed as MultiplyBySkyColor.
Property BakeVisibilityLightmap Renamed as GrabBakeVisibilityLightmap.
Property BakeVisibilityVoxelProbe Renamed as GrabBakeVisibilityVoxelProbe.
Property BakeVisibilityEnvironmentProbe Renamed as GrabBakeVisibilityEnvironmentProbe.
Property BakeVisibilityLightProj Renamed as GrabBakeVisibilityLightProj.
Property BakeVisibilityLightOmni Renamed as GrabBakeVisibilityLightOmni.
Property BakeVisibilityLightWorld Renamed as GrabBakeVisibilityLightWorld.
Property BakeVisibilitySky Renamed as GrabBakeVisibilitySky.
Property BakeVisibilityEmission Renamed as GrabBakeVisibilityEmission.
Property Texture Removed. Use TexturePath instead.
SetTextureImage( Image, bool ) Removed.
GetTextureImage( Image ) Removed.

New Functions

New Properties

LightVoxelProbe Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property Texture Removed. Use TexturePath instead.
SetTextureImage( Image ) Removed. Use TexturePath instead.
GetTextureImage( Image ) Removed. Use TexturePath instead.

MeshStatic Class#

NavigationMesh Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Renamed as MeshPath.
SetMeshName( string, bool ) Renamed as SetMeshPath( string, bool ).

Node Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property HierarchySpatialBoundSphere Removed. Use GetHierarchySpatialBoundSphere( bool ) method instead.
Property HierarchySpatialBoundBox Removed. Use GetHierarchySpatialBoundBox( bool ) method instead.
Property HierarchyWorldBoundSphere Removed. Use GetHierarchyWorldBoundSphere( bool ) method instead.
Property HierarchyWorldBoundBox Removed. Use GetHierarchyWorldBoundBox( bool ) method instead.
Property HierarchyBoundSphere Removed. Use GetHierarchyBoundSphere( bool ) method instead.
Property HierarchyBoundBox Removed. Use GetHierarchyBoundBox( bool ) method instead.

New Properties

New Functions

NodeExternBase Class#

UNIGINE 2.16.1 UNIGINE 2.17
UpdatePosition( ) Removed.

Object Class#

ObjectExternBase Class#

UNIGINE 2.16.1 UNIGINE 2.17
UpdatePosition( ) Removed.

ObjectGuiMesh Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Removed. Use MeshPath instead.
SetMesh( Mesh ) Removed.
GetMesh( Mesh ) Removed.
CreateMesh( string, bool ) Removed.
ApplyMeshProcedural( Mesh ) Set of arguments changed.
LoadMesh( string ) Removed.
SaveMesh( string ) Removed.

New Functions

New Properties

ObjectMeshCluster Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Removed. Use MeshPath instead.
SetMesh( Mesh ) Removed.
GetMesh( Mesh ) Removed.
SetMeshNameForce( string ) Removed.
GetNumSurfaceTargets( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumSurfaceTargets() instead.
GetSurfaceTargetName( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetSurfaceTargetName() instead.
CreateMesh( string, bool ) Removed.
FindSurfaceTarget( string, int ) Removed. Get a static mesh for the object and use MeshStatic.FindSurfaceTarget () instead.
ApplyMeshProcedural( Mesh ) Set of arguments changed.
LoadMesh( string ) Removed.
SaveMesh( string ) Removed.

New Functions

New Properties

ObjectMeshClutter Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Removed. Use MeshPath instead.
SetMesh( Mesh ) Removed.
GetMesh( Mesh ) Removed.
SetMeshNameForce( string ) Removed.
GetNumSurfaceTargets( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumSurfaceTargets() instead.
GetSurfaceTargetName( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetSurfaceTargetName() instead.
CreateMesh( string, bool ) Removed.
FindSurfaceTarget( string, int ) Removed. Get a static mesh for the object and use MeshStatic.FindSurfaceTarget () instead.
ApplyMeshProcedural( Mesh ) Set of arguments changed.
LoadMesh( string ) Removed.
SaveMesh( string ) Removed.

New Functions

New Properties

ObjectMeshSplineCluster Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Removed. Use MeshPath instead.
GetMeshName( ) Removed.
GetNumSurfaceTargets( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumSurfaceTargets() instead.
GetSurfaceTargetName( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetSurfaceTargetName() instead.
FindSurfaceTarget( string, int ) Removed. Get a static mesh for the object and use MeshStatic.FindSurfaceTarget () instead.

New Functions

New Properties

ObjectMeshStatic Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Removed. Use MeshPath instead.
SetCIndex( int, int, int ) Removed. Get a static mesh for the object and use MeshStatic.SetCIndex( int, int, int ) instead.
GetCIndex( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetCIndex( int, int ) instead.
SetColor( int, vec4, int ) Removed. Get a static mesh for the object and use MeshStatic.SetColor( int, vec4, int ) instead.
GetColor( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetColor( int, int ) instead.
GetMesh( Mesh ) Removed.
SetMesh( Mesh, bool ) Removed.
SetMeshNameForce( string ) Removed.
GetMeshSurface( Mesh, int, int ) Removed.
GetNormal( int, int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetNormal( int, int, int ) instead.
GetNumCIndices( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumCIndices( int ) instead.
GetNumColors( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumColors( int ) instead.
GetNumSurfaceTargets( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumSurfaceTargets() instead.
GetNumTangents( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumTangents( int ) instead.
SetNumTexCoords0( int, int ) Removed.
GetNumTexCoords0( int ) Removed.
SetNumTexCoords1( int, int ) Removed.
GetNumTexCoords1( int ) Removed.
GetNumTIndices( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumTIndices( int ) instead.
GetNumVertex( int ) Removed. Get a static mesh for the object and use MeshStatic.GetNumVertices( int ) instead.
GetSurfaceTargetName( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetSurfaceTargetName() instead.
SetSurfaceTransform( mat4, int, int ) Removed. Get a static mesh for the object and use MeshStatic.SetSurfaceTransform( mat4, int, int ) instead.
SetTangent( int, quat, int, int ) Removed. Get a static mesh for the object and use MeshStatic.SetTangent( int, quat, int, int ) instead.
GetTangent( int, int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetTangent( int, int, int ) instead.
SetTexCoord0( int, vec2, int ) Removed.Get a static mesh for the object and use MeshStatic.SetTexCoord0( int, vec2, int ) instead.
GetTexCoord0( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetTexCoord0( int, int ) instead.
SetTexCoord1( int, vec2, int ) Removed. Get a static mesh for the object and use MeshStatic.SetTexCoord1( int, vec2, int ) instead.
GetTexCoord1( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetTexCoord1( int, int ) instead.
SetTIndex( int, int, int ) Removed. Get a static mesh for the object and use MeshStatic.SetTIndex( int, int, int ) instead.
GetTIndex( int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetTIndex( int, int ) instead.
SetVertex( int, vec3, int, int ) Removed. Get a static mesh for the object and use MeshStatic.SetVertex( int, vec3, int, int ) instead.
GetVertex( int, int, int ) Removed. Get a static mesh for the object and use MeshStatic.GetVertex( int, int, int ) instead.
AddEmptySurface( string, int, int ) Removed. Get a static mesh for the object and use MeshStatic.AddEmptySurface( int, int, int ) instead.
AddMeshSurface( string, Mesh, int, int ) Removed. Get a static mesh for the object and use MeshStatic.AddMeshSurface( string, Mesh, int, int ) instead.
AddMeshSurface( string, ObjectMeshStatic, int, int ) Removed. Get a static mesh for the object and use MeshStatic.AddMeshSurface( string, MeshStatic, int, int ) instead.
AddSurfaceTarget( int, string ) Removed. Get a static mesh for the object and use MeshStatic.AddSurfaceTarget( int, string ) instead.
CreateMesh( string, bool ) Removed.
FindSurfaceTarget( string, int ) Removed. Get a static mesh for the object and use MeshStatic.FindSurfaceTarget () instead.
ApplyMeshProcedural( Mesh ) Set of arguments changed.
LoadMesh( string ) Removed.
SaveMesh( string ) Removed.
UpdateSurfaceBounds( int ) Removed.
GetMeshStatic( ) Removed.
IsFlushed( ) Removed.

New Functions

New Properties

ObjectParticles Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property NumDeflectors Removed.
Property NumNoises Removed.
Property NumForces Removed.
Property Collision Removed. Use CollisionEnabled instead.
Property PhysicsIntersection Removed. Use PhysicsIntersectionEnabled instead.
DEFLECTOR_REFLECTOR Removed.
DEFLECTOR_CLIPPER Removed.
SetDeflectorAttached( int, int ) Removed.
IsDeflectorAttached( int ) Removed.
SetDeflectorEnabled( int, bool ) Removed.
IsDeflectorEnabled( int ) Removed.
SetDeflectorRestitution( int, float ) Removed.
GetDeflectorRestitution( int ) Removed.
SetDeflectorRoughness( int, float ) Removed.
GetDeflectorRoughness( int ) Removed.
SetDeflectorSize( int, vec3 ) Removed.
GetDeflectorSize( int ) Removed.
SetDeflectorTransform( int, Mat4 ) Removed.
GetDeflectorTransform( int ) Removed.
SetDeflectorType( int, int ) Removed.
GetDeflectorType( int ) Removed.
SetForceAttached( int, int ) Removed.
IsForceAttached( int ) Removed.
SetForceAttenuation( int, float ) Removed.
GetForceAttenuation( int ) Removed.
SetForceAttractor( int, float ) Removed.
GetForceAttractor( int ) Removed.
SetForceEnabled( int, bool ) Removed.
IsForceEnabled( int ) Removed.
SetForceRadius( int, float ) Removed.
GetForceRadius( int ) Removed.
SetForceRotator( int, float ) Removed.
GetForceRotator( int ) Removed.
SetForceTransform( int, Mat4 ) Removed.
GetForceTransform( int ) Removed.
SetNoiseAttached( int, int ) Removed.
IsNoiseAttached( int ) Removed.
SetNoiseEnabled( int, bool ) Removed.
IsNoiseEnabled( int ) Removed.
SetNoiseForce( int, float ) Removed.
GetNoiseForce( int ) Removed.
SetNoiseFrequency( int, int ) Removed.
GetNoiseFrequency( int ) Removed.
GetNoiseImage( int ) Removed.
SetNoiseOffset( int, vec3 ) Removed.
GetNoiseOffset( int ) Removed.
SetNoiseScale( int, float ) Removed.
GetNoiseScale( int ) Removed.
SetNoiseSize( int, int ) Removed.
GetNoiseSize( int ) Removed.
SetNoiseStep( int, vec3 ) Removed.
GetNoiseStep( int ) Removed.
SetNoiseTransform( int, Mat4 ) Removed.
GetNoiseTransform( int ) Removed.
AddDeflector( ) Removed.
AddForce( ) Removed.
AddNoise( ) Removed.
RemoveDeflector( int ) Removed.
RemoveForce( int ) Removed.
RemoveNoise( int ) Removed.
SaveStateForces( Stream ) Removed.
RestoreStateForces( Stream ) Removed.
SaveStateNoises( Stream ) Removed.
RestoreStateNoises( Stream ) Removed.
SaveStateDeflectors( Stream ) Removed.
RestoreStateDeflectors( Stream ) Removed.
SetNoiseSeed( int, int ) Removed.
GetNoiseSeed( int ) Removed.

New Functions

New Properties

ObjectWaterGlobal Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property SoftIntersection Renamed as SoftInteraction.
Property DiffuseDistortion Renamed as DecalsDistortion.
Property SubsurfaceDiffuseIntensity Renamed as SubsurfaceDecalsIntensity.

New Properties

ObjectWaterMesh Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property MeshName Removed. Use MeshPath instead.
SetMeshName( string, bool ) Removed. Use SetMeshPath( string, bool ) instead.

PackageUng Class#

New Functions

Physics Class#

Player Class#

Plugin Class#

UNIGINE 2.16.1 UNIGINE 2.17
Gui( EngineWindowViewport ) Set of arguments changed.
Render( EngineWindowViewport ) Set of arguments changed.

Render Class#

UNIGINE 2.16.1 UNIGINE 2.17
STREAMING_ASYNC Removed. Use STREAMING_MESHES.ASYNC for meshes or STREAMING_TEXTURES.ASYNC for textures instead.
STREAMING_FORCE Removed. Use STREAMING_MESHES.FORCE for meshes or STREAMING_TEXTURES.FORCE for textures instead.
Enum CORRECT_ROUGHNESS Removed.
Property EnvironmentCorrectRoughness Removed. Use EnvironmentGGXMipmapsQuality instead.
Property SSRDenoise Removed.
Property BentNormalRayTracingThreshold Removed.
Property BentNormalRayTracingDenoise Removed.
Property BentNormalRayTracing Removed.
Property SSGIRadius Removed.
Property SSGIResolutionColor Removed.
Property SSGIDenoise Removed.
Property SSAORadius Removed.
Property SSAORayTracingThreshold Removed.
Property SSAOIntensityLightedSide Removed.
Property SSAOResolution Removed.
Property SSAOQuality Removed.
Property SSAORayTracingDenoise Removed.
Property SSAORayTracing Removed.
Property SSAONoise Removed.
Property SSRTGINoiseRay Removed.
Property SSRTGI Removed.
Property StreamingMeshesMemoryLimit Removed.
Property StreamingDestroyDuration Removed.
Property StreamingUseMemoryLimit Removed.
Property StreamingMode Removed.
Property SSRColorClampingVelocityThreshold Removed.
Property SSRColorClampingIntensity Removed.
Property SSRDenoiseRadius Removed.
Property SSRDenoiseThreshold Removed.
Property SSRDenoiseGaussianSigma Removed.
Property SSRDenoiseIntensity Removed.
Property SSRDenoiseQuality Removed.
Property BentNormalDenoiseQuality Removed.
Property SSGIColorClampingVelocityThreshold Removed.
Property SSGIColorClampingIntensity Removed.
Property SSGIDenoiseRadius Removed.
Property SSGIDenoiseThreshold Removed.
Property SSGIDenoiseGaussianSigma Removed.
Property SSGIDenoiseIntensity Removed.
Property SSGIDenoiseQuality Removed.
Property SSAODenoiseQuality Removed.
Property BentNormalColorClampingVelocityThreshold Removed.
Property BentNormalColorClampingIntensity Removed.
Property BentNormalDenoiseRadius Removed.
Property BentNormalDenoiseThreshold Removed.
Property BentNormalDenoiseGaussianSigma Removed.
Property BentNormalDenoiseIntensity Removed.
Property BentNormalPresetNumNames Removed.
Property BentNormalPreset Removed.
Property SSGIPresetNumNames Removed.
Property SSGIPreset Removed.
Property SSAOColorClampingVelocityThreshold Removed.
Property SSAOColorClampingIntensity Removed.
Property SSAODenoiseRadius Removed.
Property SSAODenoiseThreshold Removed.
Property SSAODenoiseGaussianSigma Removed.
Property SSAODenoiseIntensity Removed.
Property SSAOPresetNumNames Removed.
Property SSAOPreset Removed.
Property GIPresetNumNames Removed.
Property GIPreset Removed.
Property StreamingUpdateLimit Removed.
GetGIPresetName( int ) Removed.
GetSSAOPresetName( int ) Removed.
GetSSGIPresetName( int ) Removed.
GetBentNormalPresetName( int ) Removed.
CreateMipmapsCubeGGXImage( Image, Texture, Render.GGX_MIPMAPS_QUALITY ) Set of arguments changed.
CreateMipmapsCubeGGXTexture( Texture, Render.GGX_MIPMAPS_QUALITY, bool ) Set of arguments changed.
CreateShorelineDistanceField( Texture, Image, int, int, int ) Set of arguments changed.
RenderImage2D( Camera, Image, int ) Removed. Use RenderTexture2D( Camera, Texture, int ) instead.
RenderImage2D( Camera, Image, int, int, int, int ) Removed. Use RenderTexture2D( Camera, Texture, int, int, int, int ) instead.
RenderImageCube( Camera, Image, int ) Removed. Use RenderTextureCube( Camera, Texture, int ) instead.
RenderImageCube( Camera, Image, int, int, int, bool ) Removed. Use RenderTextureCube( Camera, Texture, int, int, int, bool ) instead.
RenderNodeImage2D( Camera, Node, Image, int, int, string ) Removed. Use RenderNodeTexture2D( Camera, Node, Texture, int, int, string ) instead.
RenderNodeImage2D( Camera, Node, Image, int, int, int, int, int, string ) Removed. Use RenderNodeTexture2D( Camera, Node, Texture, int, int, int, int, int, string ) instead.
CompressImage( TextureToImageTransfered, Image, int, int, int ) Set of arguments changed.
CompressTexture( TextureToImageTransfered, Texture, int, int, int ) Set of arguments changed.
ConvertColorSpecularToMetalness( out vec4, out vec4, out vec4, out vec4 ) Removed.
ConvertImageSpecularToMetalness( Image, Image, Image, Image ) Removed.

New Functions

New Properties

Renderer Class#

OpenVR Class#

Property Class#

Shape Class#

Varjo Class#

Viewport Class#

UNIGINE 2.16.1 UNIGINE 2.17
RenderImage2D( Camera, Image ) Removed. Use RenderTexture2D( Camera, Texture ) instead.
RenderImage2D( Camera, Image, int, int, bool ) Removed. Use RenderTexture2D( Camera, Texture, int, int, bool ) instead.
RenderImageCube( Camera, Image ) Removed. Use RenderTextureCube( Camera, Texture, int ) instead.
RenderImageCube( Camera, Image, int, bool, bool ) Removed. Use RenderTextureCube( Camera, Texture, int, bool, bool ) instead.
RenderNodeImage2D( Camera, Node, Image ) Removed. Use RenderNodeTexture2D( Camera, Node, Texture ) instead.
RenderNodeImage2D( Camera, Node, Image, int, int, bool ) Removed. Use RenderNodeTexture2D( Camera, Node, Texture, int, int, bool ) instead.
RenderNodesImage2D( Camera, Node[], Image ) Removed. Use RenderNodesTexture2D( Camera, Node[], Texture ) instead.
RenderNodesImage2D( Camera, Node[], Image, int, int, int ) Removed. Use RenderNodesTexture2D( Camera, Node[], Texture, int, int, int ) instead.

New Functions

WidgetCanvas Class#

WidgetEditText Class#

WidgetSpriteNode Class#

UNIGINE 2.16.1 UNIGINE 2.17
RenderImage( Image ) Removed. Use RenderTexture( Texture ) instead.

WidgetSpriteViewport Class#

UNIGINE 2.16.1 UNIGINE 2.17
RenderImage( Image ) Removed. Use RenderTexture( Texture ) instead.

WidgetWindow Class#

WindowEvent Class#

UNIGINE 2.16.1 UNIGINE 2.17
Property Generic Removed.
Property Drop Removed.

New Functions

WindowManager Class#

World Class#

WorldExternBase Class#

UNIGINE 2.16.1 UNIGINE 2.17
UpdatePosition( ) Removed.

Xml Class#

Bus Class#

Channel Class#

New Functions

New Properties

ChannelGroup Class#

DSP Class#

EventInstance Class#

New Functions

FMODCore Class#

FMODEnums Class#

Entity Class#

Last update: 2023-10-11
Build: ()