Plug-ins for desktop platforms are libraries of native code you can write in C, C++ and Objective C. This page describes plug-ins for macOS, Windows, and Linux. For more information see Native plug-ins.
You can deploy macOS plug-ins as bundles or, if you are using the IL2CPP scripting backend, loose C++ files, which you can invoke with [DllImport("__Internal")]
syntax. For further information on loose C++ plug-ins see C++ source code plugins for IL2CPP.
To create the bundle project with XCode:
For more information about working with XCode see Apple’s documentation on XCode.
extern "C"
{
float ExamplePluginFunction ();
}
Plug-ins on Windows are either .dll files with exported functions, or loose C++ files if you are using IL2CPP. You can use most languages and development environments that can create .dll files to create plug-ins. You must declare any C++ functions with C linkage to avoid name mangling issues.
Plug-ins on Linux are .so files with exported functions. Although these libraries are usually in C or C++, you can use any language. You must declare any C++ functions with C linkage to avoid name mangling issues.
In Unity, the Plugin Inspector manages your plug-ins. To access the Plugin Inspector, select a plug-in file in the Project window. For Standalone platforms you can choose the CPU architecture with which the library is compatible. For cross platform plug-ins you must include the .bundle file (for macOS), the .dll file(for Windows), and the .so file (for Linux). Unity automatically picks the right plug-in for the target platform and includes it with the player. For further information see Import and configure plug-ins.
Place your built plug-in in the Assets folder or the appropriate architecture-specific sub-directory in your Unity Project. Unity then finds it by name when you invoke it from a C# script. For example: [DllImport ("PluginName")] private static extern float ExamplePluginFunction ();
Note: PluginName
should not include the library prefix or file extension (for example, the actual name of the plug-in file is PluginName.dll on Windows and libPluginName.so on Linux).
You can download and use these projects to learn how to implement plug-ins in Unity.