通常,脚本保存在项目源文件和编译时的统一来源的变化。然而,它也可以编译脚本一动态链接库(DLL)使用外部编译器。然后产生的DLL可以被添加到项目和包含的类可以被附加到对象,就像正常的脚本。 它通常是在Unity中编写脚本比DLLS容易多了。然而,你可能获得第三方单码是以DLL的形式提供。在开发自己的代码,你可以使用Unity不支持的编译器(例如F #,)编译代码的一个DLL添加到Unity项目。另外,你可能想没有 源代码(统一的资产存储产品,说)和DLL是一个简单的办法。 创建一个DLL创建一个DLL,你首先需要一个合适的编译器。并不是所有的编译器编译的.NET代码是保证工作的统一,所以它可能是测试编译器提供一些可用的代码做重要的工作之前明智。如果DLL不包含代码依赖于统一的API,那么你可以简单地将其编译为一个DLL使用相应的编译器选项。如果你想使用统一的API,那么你将需要做出统一的DLL,提供给编译器。在Mac上,这些都包含在应用程序包(你可以通过从上下文菜单中的命令;显示包内容见束的内部结构,右击或按Ctrl点击统一应用):— 到统一的dll的路径通常会 /应用/团结/ unity.app/contents/frameworks/managed/ …and the two DLLs are called UnityEngine.dll and UnityEditor.dll. 在Windows的DLL,可以陪统一应用的文件夹中。该路径通常会 C:\程序文件\统一\编辑\数据管理 …while the names of the DLLs are the same as for Mac OS. 准确的编译DLL将取决于编译器的使用。作为一个例子,对于单C #编译器的命令行,MCS,可能看起来像Mac OS:— MCS - R:/应用/团结/ unity.app/contents/frameworks/managed/unityengine.dll目标:图书馆classesfordll.cs 这里的R选项指定一个图书馆被列入建设路径,在这种情况下,UnityEngine图书馆。这个目标选项指定哪些类型的建立是必需的;“图书馆”是用来选择一个DLL的建立。最后,要编译的源文件的名字是classesfordll.cs(假定该文件在当前工作目录,但是你可以在必要时用全路径指定文件)。如果一切顺利的话,生成的DLL文件不久就会出现在同一文件夹中的源文件。 使用DLL一旦编译的dll文件可以被拖到统一的项目,像任何其他资产。DLL的资产有一个小三角形,可以用来揭示不同的类里面的图书馆。派生的类MonoBehaviour可以拖到游戏物体像普通的脚本。非MonoBehaviour类可以直接使用从其他脚本以通常的方式。
折叠了DLL与类可见通过Visual Studio版本,一步一步指导本节说明如何建立一个简单的DLL的例子monodevelop和Visual Studio集成以及如何准备调试会话的DLL。 建立项目首先,打开MonoDevelop或者Visual Studio创建一个新项目。在MonoDevelop,你这个选择File > New > Solution然后选择C# > Library。在Visual Studio中,你应该选择File > New > Project然后选择Visual C# > Class Library。 然后你需要填写信息的新图书馆: - 姓名命名空间(for this is the example”dlltest使用“as the name)。
- 位置是项目的父文件夹。
- 解决方案名称是项目的文件夹。
接下来,你应该添加到统一的DLL的引用。在MonoDevelop,你应该打开上下文菜单推荐信在解决方案浏览器选择编辑参考文献。然后,选择选项.Net Assembly tab > File System > select file。在Visual Studio中打开上下文菜单推荐信在解决方案资源管理器中选择添加引用。然后,选择选项Browse > Browse > select file。 在这个阶段,你有权选择需要的DLL文件。在Mac OSX的文件,可以发现在 应用程序/ unity.app/contents/frameworks/managed/unityengine.dll …while on Windows, the path is 程序文件\统一\编辑\数据\管理\ unityengine.dll 代码例如,重命名类”myutilities”在解决方案浏览器与以下替换代码: using System; using UnityEngine;
namespace DLLTest {
public class MyUtilities {
public int c;
public void AddValues(int a, int b) { c = a + b; }
public static int GenerateRandom(int min, int max) { System.Random rand = new System.Random(); return rand.Next(min, max); } } } 有了代码,建立项目生成的DLL文件和调试符号。 使用DLL的统一在这个例子中,创建统一的新项目并复制生成的文件<project folder>/bin/Debug/DLLTest.dll进入文件夹。然后,创建一个C #脚本称为“资产测试,用下面的代码替换它的内容: using UnityEngine; using System.Collections; using DLLTest;
public class Test : MonoBehaviour {
void Start () { MyUtilities utils = new MyUtilities(); utils.AddValues(2, 3); print("2 + 3 = " + utils.c); }
void Update () { print(MyUtilities.GenerateRandom(0, 100)); } } 当你将这个脚本到场景中,按播放的对象,你会看到在控制台窗口的DLL的代码输出。 建立一个DLL的调试会话首先,你应该准备调试DLL的符号。在MonoDevelop,复制生成的文件<project folder>/bin/Debug/DLLTest.dll.mdb在资产/插件文件夹。在Visual Studio中,执行 程序文件\统一\编辑\数据\单\自由\一\ 2 \ pdb2mdb.exe 在命令提示符下,通过<project folder>\bin\Debug\DLLTest.pdb作为一个参数。然后,将转换后的文件<project folder>\bin\Debug\DLLTest.dll.mdb资产/插件。 其次,在MonoDevelop打开“测试”脚本。确保统一调试器允许从工具菜单(Windows)或MonoDevelop统一菜单(MacOS)。你需要从这个菜单选项Add-in Manager > Installed tab > Unity > select Mono Soft Debugger Support for Unity > Enable。 这个设置完成,你可以使用DLL在通常的方式统一编码。看到脚本工具有关调试的进一步信息部分。
|