Unity中调用DLL库

DLL —— Dynamic Link Library(动态连接库文件),这里以Window平台为例。框架

 

Unity支持的两种语言生成的DLL库(C++、C#),这里以C#为例,C++网上能够搜索很详细的资料。编辑器

 

1) 添加引用关系spa

若是有对UnityEngine、UnityEditor的引用,须要先添加引用关系。.net

image

路径一般位于Unity安装目录下的Editor/Data/Managed路径下。3d

 

2) 生成DLL文件excel

创建项目时,选择“类库”。目标框架.Net Framework的版本,只能选择3.5及如下版本code

image

 

 

3) 在项目中引用DLL文件blog

Unity会自动加载相应的DLL文件,因此DLL文件只要存放于Assets目录下便可,固然为了统一管理,通常放在Plugins目录下。游戏

 

这里有一个须要注意的点,若是DLL文件放在Editor下,那么只能是Editor目录下的C#文件才能够引用,若是想在项目运行时的C#中进行引用,那DLL文件就不能放在Editor目录下。以上目录只与名字相关,与层级无关,路径能够是Assets/a/b/c/d/e/../XX.DLLget

 

放置好DLL后,注意刷新Visual Studio中的解决方案。

 

 

参考连接:

 在 Unity 工程 (Project) 中使用 DLL(动态库)

 unity中调用dll文件总结

在Unity3D里使用DLL

 

 

如何查看DLL中的方法是否已经导出呢?

C#:dnSpy

C++:depends

 

 

理解如何使用以后,咱们作一个示例:在Unity加载并解析Excel文件。这里用的库是 EPPlus ,使用的版本是3.5

image

假设咱们只会在编辑器中使用,那么能够将DoNet35目录下的二个文件,放到这样的目录中:ThirdParty/EPPlus/Editor  这样就只有编辑器里才能使用到这个类库。使用方法也很简单

ExcelPackage package = new ExcelPackage(new FileInfo(filePath));

List<string> keys = new List<string>();
List<string> values = new List<string>();

ExcelWorksheet sheet = package.Workbook.Worksheets[1];
int rows = sheet.Dimension.Rows;
for (int row = 2; row <= rows; row++)
{
    string key = sheet.Cells[row, 1].Value.ToString();
    string value = sheet.Cells[row, 2].Value.ToString();

    keys.Add(key);
    values.Add(value);
}

//

 

在Unity中能读取excel就很方便了,这样就比较方便地作技能编辑器、加载数据配置、提取游戏中的文字等。

相关文章
相关标签/搜索