Unity3D调用自己封装的dll

来源:互联网 发布:红警进不去网络 编辑:程序博客网 时间:2024/06/05 16:35

之前总感觉会封装dll组件的都是大牛级别的程序员做的事情,然后供给菜鸟级别的调用。感觉为了保护自己的源码不会被他人知道,然后就封装一个dll供人家调用,那样就觉得很牛, 今天我也尝试摸索了一下,感觉也就那么回事,但只是简单的测试而已,其实会写封装的,封装的好的还是很牛的,哈哈,那让我们也来假装“牛”一次吧!

首先要申明的是,unity3d支持C#语言,但只有pro版本才支持.net2.0,其他版本是不支持的,但也只有pc平台才支持,切记!

操作步骤:

1.封装dll

打开vs2010,新建项目,选择类库,然后命名(这里的命名就是你封装的dll的名字),下面我就简单的封装一个方法,只做为演示,这样你就可以封装更多 更好的属于自己“私有”的方法,这里私有是有局限性的,因为有反编译工具能查看到你编译的源码的,下面我就演示一下一个神器,.net的反编译工具 (.NET Reflector)。

我先在vs中创建一个类,就一个简单的静态方法和静态类:

1
2
3
4
5
6
7
8
9
10
namespace dingxiaowei
{
    public static class dxw
    {
        public static string showName(string name)
        {
            returnname;
        }
    }
}
然后进行编译,编译成的dll,名字为dingxiaowei.dll,然后我们将这个dll文件拖到反编译器,我们看一下反编译出来的是啥?

类:

反编译能看到dxw类中的一些方法。

点击方法,就能看到具体方法的实现:

2.在unity中使用自定义的dll组件

在 unity中创建一个Plugins文件夹,所有的外部引用的dll组件必须要放在这个文件下,才能被using。如果是C#封装的dll,就用 using的方式引用,如果是C++的dll,就DllImport["dxw.dll"]的方式来添加对dll的引用。然后我在C#脚本中用这个 dll,

运行结果:

看到能够正确输出了!

0 0