首先了解下使用DLL的優點,程序運行時不用加載全部代碼,只有運行到引用時,才從DLL庫中取出。而且使用DLL文件還能夠減少程序體積,封裝好的DLL文件,因爲函數已經封裝到DLL文件中,防止意外變動。因此編譯器不會對咱們的 DLL 進行編譯,而是直接運 行,程序執行須要時調用的,許多搞插件開發的,都是將代碼封裝爲 DLL ,並加密。這樣既提升了運行效率,也保證了代碼的基本安全性。小程序
建立DLL安全
以 爲例函數
打開 Visual Studio 2015(我用的vs2015),新建項目:文件→→新建→→項目,選擇 Visual C# 類庫 (.NET Framework) 測試
我這裏將命名空間改成MyDLL。隨意!加密
添加代碼注意:spa
a.全部須要經過 dll 調用的函數,訪問修飾符都須要設爲公有即public static插件
b.若想要調用 Unity的API ,就須要導入 Unity 中的2個 DLL 到庫中設計
導入UnityAPI所需兩個DLL:3d
1.先找到這兩個DLL文件:code
添加引用
方式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 }
在解決方案中,右鍵項目選擇屬性,打開設計界面--應用程序,Unity須要輸出 3.5版本及如下版本的dll
保存-》右鍵解決方案-》生成解決方案,或者
生成後,找到咱們的DLL文件,文件在咱們庫項目中的 bin/Debug
目錄下
個人文件:
將找到的本身建立的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,到這就這樣愉快的結束了!
歡迎指正!