Unity3d 创建并使用dll


出于代码保密、使用原生Win32或调用第三方库等各种原因,在Unity3d项目中是有对dll使用的需要的,这周弄了一段时间,在这里做个总结。

其实如果细心的人会发现,在Unity3d官方文档里面是有提到这个话题的,这里面我简单列举一下规则吧。

 

Using Mono DLLs in a Unity Project

file:///D:/Program%20Files%20(x86)/Unity/Editor/Data/

Documentation/Documentation/Manual/UsingDLL.html

 

在这两篇文档里面对于一些基本内容介绍的算是比较详细了,关于Unity3d dll编写的几个注意事项:

1. extern "C" 必须采用C方式的函数名导出
In general, plugins are built with native code compilers on the target platform. Since plugin functions use a C-based call interface, you must avoid name mangling issues when using C++ or Objective-C.
2. 生成的dll必须放在Assets/Plugins文件夹下 ,务必别弄错放在/Managed下了
3. 在自己开始动手写自己的动态链接库、或调用别的链接库时,最好事先测试下当前环境是否正确,比如,写个简单的函数,验证并在Unity调用看看是否正确。
C++ 建立dll空项目AngelGUI
"add.h"
#if defined (EXPORTBUILD)
# define _DLLExport __declspec (dllexport)
# else
# define _DllExport __declspec (dllimport)
#endif
extern "C" int _DLLExport add(int x, int y);
"add.cpp"
#define EXPORTBUILD
#include "add.h"
int _DLLExport add(int x, int y)
{
 return x+y;
}
将生成的Dll放在Unity工程Assets/Plugins/文件夹下,然后在C#脚本中使用如下方式声明,然后在其它地方调用,查看输出结果。

[DllImport("AngelGUI")]
static extern int add(int x, int y);

Note: 对于Unity输出的exe程序,想通过修改窗口的Window Style来达到Resizable的目的,这样大可不必,因为在Unity里面本身就提供了选项,Edit -> Project Settings -> Player -> Resolution and Presentation ---Resizable Window Toggle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值