生成Dll在Unity中使用

我發現很多大佬,插件開發者以及Unity官方都在用Dll來保證既可讓使用者正常使用也可有效防止使用者看到自己寫的程式碼

版本說明

Visual Studio版本:2019 16.10.3
Unity版本:2019.4.16f1c1

Dll介紹

DLL (Dynamic Link Library) —— 中文:動態鏈接庫

我們 Windows 系統中就有著海量的 dll文件

當多個程式同時使用一個函數庫時, DLL 即減少在磁碟和物理記憶體中載入的程式碼的重複量,同時也提高了響應速度

好處:

  1. 程式在運行之初無需載入所有程式碼,只有在程式執行到某個函數調用時,才從 DLL 中取出
  2. 使用 DLL 文件還可以減小程式的體積
  3. 封裝好的 DLL 文件,由於函數已經封裝到 DLL 文件中,不會變更。
    所以編輯器不會對我們的 DLL 進行編譯,而是直接運行,程式執行需要時調用的

許多大神,或是插件開發者,都是將程式碼封裝為DLL ,並加密。

這樣既提高了運行效率,也保證了程式碼的基本安全性,不被他人看到

而本教程,就是教大家講自己寫的通用程式碼/需要的程式碼,封裝為 DLL 文件,導入項目即可調用使用

創建類庫

框架不用在意。Unity支援最低2.0而Visual studio最低也是2.0,當然越高越好

添加現有項到項目

現在你添加的腳本肯定會報錯,引用了沒有找到的類

引入dll到項目

引用下面只有這些dll,我們要引用Unity提供的dll

unity dll文件地址在Root\Editor\Data\Managed

但有的時候就比如你腳本中用到了UnityEngine.UI,同樣的道理

UnityEngine.UI來說,他從2019.3開始就把Unity UI分開了,在package manager里可以看到Unity UI變成了插件的形式

2019.2之後,路徑已經從 Unity安裝目錄下的Editor\Data\UnityExtensions移動到了 package里,通過package編譯後生成的dll在工程目錄下的library

這是Unity UI文檔的鏈接:點我

下面是UnityEngine.UI程式集的具所在位置:(同樣道理,每當創建新項目默認的插件的dll也都會出現在Library里)

導出Dll文件

注意:這裡可能會遇到 未能解析主引用「xxx.dll」的錯誤輸出
是因為你導入的dll中的.net高於當前類庫.net
請看我的這篇文章:點擊跳轉

如果沒遇到上面問題,你可能會看到以下輸出:

具體的dll文件在:

導入Unity正常使用

我們把做的dll文件導入unityPlugins文件夾下面,如果沒有可以自己右鍵創建Folder

我們隨便在腳本中引入剛導入的程式集dll看看效果

可以正常引用命名空間,說明我們成功了

那麼如果你能堅持把一篇文章看到最後,我在這裡祝你『程式碼永無bug』

Tags: