- Home /
Using C++ DLL's from Unity's C#?
How do I call functions in a DLL from Unity in C#? I have an example C# program that doesn't run in Unity but they just add a "using libraryName;" at the top of a file and it works.
I've placed the DLL in Assets\Plugins and as far as I can tell Unity knows it's there.
I've seen mention of adding "[DllImport ("libraryName")]" above function defines, but I can't figure out how to call functions in the library and have it actually work.
Answer by PaulUsul · Jun 07, 2011 at 09:05 PM
Here this should answer most of your questions: http://unity3d.com/support/documentation/Manual/Plugins.html
in C#
[DllImport ("PluginName")]
private static extern float FooPluginFunction ();
in the plugin
extern "C" {
float FooPluginFunction ();
}
and then you can call it in C#
print (FooPluginFunction ());
you also need to add: using System.Runtime.InteropServices;
to the top of your unity script which accesses the DLL
Answer by testure · Jun 07, 2011 at 10:59 PM
Paul's answer is correct- but I'll add that you can only call plugins from unity pro. indie version will not allow it.
Answer by zennith · Jan 28, 2013 at 11:43 AM
@paul ...how can u edit the dll in the plugin ?? its the C++ dll...how do we open the dll and write
extern "C" { float FooPluginFunction (); }
??
You don't open dll, you build it. Of course only if you have the source code for it.
exactly murc. zennith you can read more about it here and download a dll plugin project here:SimplestPluginExample-4.0
Your answer
Follow this Question
Related Questions
Unity RestSharp library 1 Answer
Load project from external source 0 Answers
External dll: namespace recognized by mono, not by UT 2 Answers
Pure Data (Pd) + Android + Unity integration? 2 Answers
Using a C file as a plugin 0 Answers