C#生成DLL,在Unity中導入/調用DLL


網上搜了一些DLL的創建、編寫、使用的學習資料,感覺比較的凌亂。或是復雜抽象,或是關鍵地方一筆帶過,不是很適合萌新。於是決定還是圖文記錄一下該過程,盡量精簡而又明確。

學習資料:


 

創建DLL文件

打開Visual Studio,新建一個項目,選擇模板Visual C#的類庫,.Net Framework選擇3.5版本(Unity5使用的Mono版本對應.net framework 3.5),如下圖。

新建一個DLLProjectClass類,編寫類的方法,如下。

namespace TestDLLProject
{
    public class DLLProjectClass
    {
        // 用本類對象來調用的普通方法
        public string GetStr(string str)
        {
            return "調用了DLL中的方法!輸入的str = " + str;
        }

        // 靜態方法
        public static int GetInt(int num)
        {
            return (num + 1);
        }
    }
}

在Visual Studio的【解決方案資源管理器】中右鍵點擊該項目,點擊【生成/重新生成】,或者直接整個【重新生成整個方案】,即可編譯該項目。

之后會在項目路徑下生成bin文件夾,生成的DLL文件就在bin\Debug文件夾下。

 


 

在其他VS項目中使用DLL

再在Visual Studio新建一個項目,在【解決方案資源管理器】中右鍵點擊該項目的【引用】,點擊【添加引用】。

彈出【引用管理器】窗口后,點擊右下角的【瀏覽】,找到剛才生成的DLL的文件夾路徑,添加DLL進項目。

之后就能在【引用】中看到該DLL了。

最后在該項目中使用DLL中的方法。代碼如下。

public void Initialize()
{
    int a = 1;
    int b = TestDLLProject.DLLProjectClass.GetInt(a);
    Console.WriteLine("調用DLL的靜態方法后, b = " + b.ToString());

    TestDLLProject.DLLProjectClass c = new TestDLLProject.DLLProjectClass();
    string result = c.GetStr("啦啦啦");
    Console.WriteLine(result);
}

輸出的結果:

DLLProjectClass按下F12可以看到該DLL的內容如下。只有方法簽名,沒有方法的實現細節。

 


 

在Unity項目中使用DLL

Unity項目中想要添加該DLL,跟上文的在其他VS項目中添加DLL有點不一樣。

編輯Unity項目的C#腳本時,在Visual Studio的【解決方案資源管理器】中,右鍵【引用】,會發現根本沒有【添加引用】這一項!

回到Unity編輯器,在Assets文件夾下新建一個Plugins文件夾,在資源管理器中把DLL文件復制到Plugins目錄下。(其實在Assets文件夾下任意地方都行,看別人的案例習慣放在Assets/Plugins下)

再次回到Unity編輯器,等Unity編譯好后,就能在Visual Studio中看到添加了該DLL的引用!

之后的調用DLL中的方法,就跟上文的差不多了。在Mono腳本中Start方法調用。代碼如下。

public class TestDLL : MonoBehaviour {
    
    void Start()
    {
        int a = 1;
        int b = TestDLLProject.DLLProjectClass.GetInt(a);
        Debug.Log("調用DLL的靜態方法后, b = " + b.ToString());

        TestDLLProject.DLLProjectClass c = new TestDLLProject.DLLProjectClass();
        string result = c.GetStr("啦啦啦");
        Debug.Log(result);
    }
}

輸出如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM