DLL (Dynamic Link Library)---動態鏈接庫
首先了解下使用DLL的優勢,程序運行時不用加載所有代碼,只有運行到引用時,才從DLL庫中取出。並且使用DLL文件還可以減小程序體積,封裝好的DLL文件,由於函數已經封裝到DLL文件中,防止意外變更。所以編譯器不會對我們的 DLL 進行編譯,而是直接運 行,程序執行需要時調用的,許多搞插件開發的,都是將代碼封裝為 DLL ,並加密。這樣既提高了運行效率,也保證了代碼的基本安全性。
創建DLL
1.創建庫
以 為例
打開 Visual Studio 2015(我用的vs2015),新建項目:文件→→新建→→項目,選擇 Visual C# 類庫 (.NET Framework)
我這里將命名空間改為MyDLL。隨意!
2.下面添加代碼:
添加代碼注意:
a.所有需要通過 dll 調用的函數,訪問修飾符都需要設為公有即public static
b.若想要調用 Unity的API ,就需要導入 Unity 中的2個 DLL 到庫中
導入UnityAPI所需兩個DLL:
1.先找到這兩個DLL文件:
添加引用
方式1:
方式2:
右鍵引用
點擊瀏覽,根據剛才找到庫文件的路徑
添加即可。這樣程序才能訪問到我們DLL庫中的函數了。
添加測試函數
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading; 6 using UnityEditor; 7 using UnityEngine; 8 namespace MyDLL 9 { 10 public class Class1 11 { 12 /// <summary> 13 /// 加法運算 14 /// </summary> 15 /// <param name="a"></param> 16 /// <param name="b"></param> 17 /// <returns></returns> 18 public static int Addition(int a,int b) { 19 return a + b; 20 } 21 /// <summary> 22 /// 乘法運算 23 /// </summary> 24 /// <param name="a"></param> 25 /// <param name="b"></param> 26 /// <returns></returns> 27 public static int Multiplication(int a, int b) 28 { 29 return a * b; 30 } 31 /// <summary> 32 /// 減法運算 33 /// </summary> 34 /// <param name="a"></param> 35 /// <param name="b"></param> 36 /// <returns></returns> 37 public static int Subtraction(int a, int b) 38 { 39 return a - b; 40 } 41 42 } 43 }
3.配置生成解決方案
在解決方案中,右鍵項目選擇屬性,打開設計界面--應用程序,Unity需要輸出 3.5版本及以下版本的dll
保存-》右鍵解決方案-》生成解決方案,或者
4.找到生成的DLL
生成后,找到我們的DLL文件,文件在我們庫項目中的 bin/Debug
目錄下
我的文件:
5.調用創建的DLL文件
將找到的自己創建的DLL文件放入Unity的Plugins文件夾下(這里要注意的是Unity 2017.3版本后,庫文件需要放在 Plugins文件夾下,才可以正常啟用,在這里我是vs2015,無所謂)
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 public class DLLtext : MonoBehaviour { 6 7 void Start () { 8 Debug.Log(MyDLL.Class1.Addition(1, 2)); 9 Debug.Log(MyDLL.Class1.Multiplication(3, 2)); 10 Debug.Log(MyDLL.Class1.Subtraction(4, 2)); 11 } 12 }
打印結果:
OK,到這就這樣愉快的結束了!
歡迎指正!