VisualStuido中將C#腳本封裝打包DLL並調用

 DLL (Dynamic Link Library)---動態連接庫

 首先了解下使用DLL的優點,程序運行時不用加載全部代碼,只有運行到引用時,才從DLL庫中取出。而且使用DLL文件還能夠減少程序體積,封裝好的DLL文件,因爲函數已經封裝到DLL文件中,防止意外變動。因此編譯器不會對咱們的 DLL 進行編譯,而是直接運  行,程序執行須要時調用的,許多搞插件開發的,都是將代碼封裝爲 DLL ,並加密。這樣既提升了運行效率,也保證了代碼的基本安全性。小程序

建立DLL安全

1.建立庫

以 爲例函數

打開 Visual Studio 2015(我用的vs2015),新建項目:文件→→新建→→項目,選擇 Visual C# 類庫 (.NET Framework) 測試

我這裏將命名空間改成MyDLL。隨意!加密

2.下面添加代碼:

添加代碼注意: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 }

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,到這就這樣愉快的結束了!

歡迎指正!

相關文章
相關標籤/搜索