跨平台Plugins
PC平台
调用C/C++代码
C++代码需要使用extern"C"
编译后的c dll放置在Assets/Plugins/x86(或x86_64)下,命名为PluginName.dll
在C#中使用如下代码声明
[DllImport("PluginName")]
public static extern float func();
Android平台
1.调用C/C++代码(ini层的so库)
C++代码使用extern"C"
编译后的c dll放置在Assets/Plugins/Android/libs/armeabi(或armeabi-v7a或x86)下,命名为libPluginName.so
在C#中使用如下代码声明
[DllImport("PluginName")]
public static extern float func();
2.调用java代码(Android层的jar)
使用Android开发工具创建Android工程,将代码编译打包成jar文件
Unity在Android上是一个Activity,java代码需要继承
com.unity3d.player.UnityPlayerActivity
修改manifest.xml里面的activity的名称
在C#中使用AndroidJavaClass和AndroidJavaObject来访问
更方便的方法,直接使用已有的
com.unity3d.player.UnityPlayer
在C#中的代码
UnitySendMessage("GameObjectName1","MethodName1","Message to send");
iOS平台
调用C/C++/Objective-C代码(.a静态库)
创建xcode项目将编译的静态库a放入Assets/Plugins/iOS下,命名为libPluginName.a
直接将xcode工程里的源码放在Assets/Plugins/iOS/Classes下
在C#中使用如下代码声明
[DllImport("__Internal")]
public static extern void func();
在C/C++/Objective-C调用C#的代码
UnitySendMessage("GameObjectName1","MethodName1","Message to send");