先申明一下这样做是有需要的。当我们需要把脚本提供给第三方使用,而又不希望对方看到具体的实现过程,这时候就需要将代码封装编译成dll文件,供第三方调用。或是多个项目都要用到同一个模块或同样的功能,则可以把该模块或是功能编译成dll,方便复用和维护。

一、先介绍使用MonoDevelop编译器,具体做法如下:

1.打开MonoDevelop,新建项目

unity脚本封装成dll-LMLPHP

填写项目名称和项目路径(项目名称的命名中不要有下划线这些特殊字符,否则可能会报错):

unity脚本封装成dll-LMLPHP

2.view—visual Design窗口,References右键Edit

添加被引用的dll文件

unity脚本封装成dll-LMLPHP

3.编辑或添加需要打包的脚本,此处搞一个简单脚本用来测试吧:

using System;
using UnityEngine; namespace DellTest
{
public class MyClass
{
public MyClass ()
{
Debug.Log ("test sucess");
}
}
}

脚本要注意的是最好使用命名空间,避免调用时类名重名问题。

4.右键,旋转options

unity脚本封装成dll-LMLPHP

更改Target framework

unity脚本封装成dll-LMLPHP

这一步特别重要,不然打包的dll unity无法使用,因为framework不兼容。

5.右键,可以先clean再build,我习惯先clean。

unity脚本封装成dll-LMLPHP

6.去项目下面找到生成的dll包。

unity脚本封装成dll-LMLPHP

7.将这个包拖到unity的资源下面,写一个脚本简单测试一下:

using UnityEngine;
using DellTest; public class dlltest : MonoBehaviour
{
MyClass my = new MyClass(); }

  二、手动编译成dll文件

执行下面命令

mcs -r:/Applications/Unity/Unity.app/Contents/Managed/UnityEngine.dll -target:library /Users/lpp/Projects/DllTEST/DllTEST/MyUtilities.cs
05-11 04:11
查看更多