Unity3d-在Unity項目中使用Mono DLL(動態鏈接庫)


最近研究了下Unity對Dll的調用。查了一些資料,總結如下。

為什么要用DLL?

答:

   1:你選擇用來開發的編程語言並不被Unity支持(如 F#),這個時候你就可以考慮把這樣的代碼編譯成DLL文件。

   2:你並不想讓代碼公開,只是想提供調用接口,那么DLL是一個很好的選擇。

怎么做?

答:回答這個問題,首先要解決“怎么創建Unity3d 支持的DLL”和“Unity3D要怎么使用DLL.”

   1. 創建Unity3d支持的DLL

      (1)選擇合適的編譯器(因為Unity並不能確保支持所有編譯器編譯的.Net代碼)。

            如:MonoDevelop  Visual Studio

      (2)確定代碼是否基於Unity的API。

           如果DLL文件不包含基於Unity的API的代碼,你仍然可以使用合適的編譯選項把它編譯成DLL文件。

    如果你想使用Unity的API,則你需要在編譯器中引用Unity的DLL,有兩個分別是UnityEngine.dll和UnityEditor.dll。  

           Mac系統上Unity的DLLS路徑一般是:

                      /Applications/Unity/Unity.app/Contents/Frameworks/Managed/

           Windows系統中,DLLS能在Unity應用的安裝文件夾中找到。路徑一般是: 

                     C:\Program Files(x86)\Unity\Editor\Data\Managed

       最后,准確的編譯DLL將取決於編譯器的使用。

       例:Mono C#編譯器的命令行,在Mac系統上mcs可能像下面這樣

       mcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -target:library ClassesForDLL.cs

 這里,-r指定了發布時被包含的庫的路徑,在這個例子中是UnityEngine的庫。-target指定了發布時需要的文件;"library"被用於選着的發布一個DLL。最后,ClassForDLL.cs就是將要被編譯的文件。 (假定這個文件是在當前工作目錄,如果必要的話你可以指定文件使用的完整路徑)。如果一切順利,生成的DLL文件不久就會出現在源文件的同一文件夾下。

   2. Unity3d使用DLL文件

一旦編譯好,DLL文件就可以像其他資源一樣被拖進Unity的工程里面。DLL資源上有個小三角形,用來揭示庫里面單獨的一些類。繼承自MonoBehaviour類可以像普通的腳本拖到游戲對象上。Non-MonoBehaviour類可以以平時的方式直接在其他腳本中使用。

   

    參考文獻:http://docs.unity3d.com/Documentation/Manual/UsingDLL.html

    附上一個 Demo,點擊下載 

   

 


免責聲明!

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



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