This page has been translated automatically.
Setting Up Development Environment
High-Level Systems
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
Double Precision Coordinates
Core Library
Engine Classes
Node-Related Classes
Rendering-Related Classes
Physics-Related Classes
Bounds-Related Classes
GUI-Related Classes
Controls-Related Classes
Pathfinding-Related Classes
Utility Classes
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.

C# API Reference

Most functions and classes in C# API have the same names and behavior as in C++ API.

To work with C# API by using Mono on the Linux platform, the Mono should be installed this way.

Special Aspects of Pointers

You should take into account that each class of C# API has methods for managing pointers:

  • refPtr() - returns the reference counter.
  • getPtr() - returns the internal pointer.
  • checkPtr() - returns false if the internal pointer is IntPtr.Zero; otherwise, returns true.
  • clearPtr() - clears the pointer. After calling clearPtr(), getPtr() will return IntPtr.Zero and checkPtr() will return false.
  • destroyPtr() - destroys the pointer.

The pointers are managed in the same way as in C++.

Differences in Function Exporting

To export your function from C# to UnigineScript, you should use Interpreter.Function() with different postfixes instead of MakeExternFunction(). The postfix of Function shows the number of arguments (up to 8 arguments) and the type of return value:

  • no postfix - void.
  • i - int.
  • d - double.
  • f - float.
  • s - string.
  • v - Unigine.Variable (the same class as the C++ API Unigine::Variable class).

See also an example of function exporting.

Renderer Class

The C# API also has the Renderer class. This class allows you to get access to the specific pass of Rendering Sequence by overriding virtual methods of the Unigine.Renderer class.

In the C# API you can inherit from Renderer, Package and Plugin classes only once.

You can get access to the existing renderer instance by using get() function:

Source code(C#)
/* ... */
// get existing instance of the Renderer
Renderer renderer = Renderer.get();
/* ... */

Read about the C++ API Unigine::Renderer class which has the same methods and behavior as in the C# API.

Using References

You can add your .dll libraries to the C# project to use specific structures, classes and methods. If you use Visual Studio you can add NuGet packages to your solution by clicking Project -> Manage NuGet Packages...

View Documentation by Using Visual Studio

You can read the documentation of some of C# API methods by using the Object Browser in Visual Studio.

  1. In Visual Studio, click View -> Object Browser or press CTRL + W and then J.

    The Object Browser window will open. The Object Browser displays three panes: an Objects pane on the left, a Members pane on the upper right, and a Description pane on the lower right.

  2. Select the UnigineSharp_x64d (or UnigineSharp_x86d) object in the Object pane and choose the class you wish to view.

  3. Specify the member in the Members pane.
  4. If the description for chosen member exists, it will appear in the Description pane.

See Also

Last update: 2017-07-03
Build: ()