Unity supports native plug-ins for Android written in C/C++ and packaged in a shared library (.so).
To build a C++ plug-in for Android, use the Android NDK and get yourself familiar with the steps required to build a shared library.
If you are using C++ to implement the plug-in, you must ensure the methods are declared with C linkage to avoid name mangling issues.
extern "C" {
float Foopluginmethod ();
}
After building the library, copy the output .so file(s) into the Assets/Plugins/Android directory in your Unity project. In the Inspector, mark your .so files as compatible with Android, and set the required CPU architecture in the dropdown box:
To call the methods in your native plug-in from within your C# scripts, use the following code:
[DllImport ("pluginName")]
private static extern float Foopluginmethod();
Note that pluginName should not include the prefix (‘lib’) or the extension (‘.so’) of the filename. It is recommended to wrap all the native plug-in method calls with an additional C# code layer. This code checks Application.platform and calls native methods only when the app is running on the actual device; dummy values are returned from the C# code when running in the Editor. Use platform defines to control platform dependent code compilation.
This zip archive contains a simple example of a native code plug-in. This sample demonstrates how C++ code is invoked from a Unity application. The package includes a scene which displays the sum of two values as calculated by the native plug-in. You will need the Android NDK to compile the plug-in.
2017–05–18 Page published with no editorial review
Updated features in 5.5