DLL —— Dynamic Link Library(動態鏈接庫文件),這里以Window平台為例。
Unity支持的兩種語言生成的DLL庫(C++、C#),這里以C#為例,C++網上可以搜索很詳細的資料。
1) 添加引用關系
如果有對UnityEngine、UnityEditor的引用,需要先添加引用關系。
路徑通常位於Unity安裝目錄下的Editor/Data/Managed路徑下。
2) 生成DLL文件
建立項目時,選擇“類庫”。目標框架.Net Framework的版本,只能選擇3.5及以下版本。
3) 在項目中引用DLL文件
Unity會自動加載相應的DLL文件,所以DLL文件只要存放於Assets目錄下即可,當然為了統一管理,一般放在Plugins目錄下。
這里有一個需要注意的點,如果DLL文件放在Editor下,那么只能是Editor目錄下的C#文件才可以引用,如果想在項目運行時的C#中進行引用,那DLL文件就不能放在Editor目錄下。以上目錄只與名字相關,與層級無關,路徑可以是Assets/a/b/c/d/e/../XX.DLL
放置好DLL后,注意刷新Visual Studio中的解決方案。
參考鏈接:
在 Unity 工程 (Project) 中使用 DLL(動態庫)
如何查看DLL中的方法是否已經導出呢?
C#:dnSpy
C++:depends
理解如何使用之后,我們做一個示例:在Unity加載並解析Excel文件。這里用的庫是 EPPlus ,使用的版本是3.5
假設我們只會在編輯器中使用,那么可以將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就很方便了,這樣就比較方便地做技能編輯器、加載數據配置、提取游戲中的文字等。