生成Dll在Unity中使用

執著GodShadow發表於2021-07-16

我發現很多大佬,外掛開發者以及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’

相關文章