Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Native plug-ins

Details on using native plug-ins.
Read time 1 minuteLast updated a day ago

Unity supports native plug-ins, which are libraries of unmanaged code written in languages such as C, C++, and Objective-C. Plug-ins let the managed code you write in C# to call functions from these libraries. This feature allows you to integrate middleware libraries and to reuse existing C/C++ code. You can use both precompiled libraries and source code files as plug-ins. When you use source code, Unity compiles and links the plug-in code statically.

Topic

Description

Introduction to native plug-ins in UnityHow to import and use native plug-ins.
Call functionsHow to call unmanaged functions in a native plug-in from managed C# code and how to callback from unmanaged code to managed code.
DllImport attributeUse the DllImport attribute to tell the scripting runtime where to find an unmanaged function.
Pass data between managed and unmanaged codeHow to exchange data between managed and unmanaged code.
Note
Unity also exposes a set of native APIs that allow you to create and use plug-ins that interact directly with Unity Engine systems such as rendering, profiling, and logging. When you use these APIs, your native plug-in can interoperate with the Unity runtime directly without going through managed application code. Unity discovers and loads plug-ins that use this API automatically. For more information, refer to Native plug-in APIs. For an example of a native plug-in that uses these APIs, refer to Native Rendering Plugin.
For platform-specific information on native plug-ins, refer to the relevant section under Platform development.

Additional resources