• unity3d將C#類封裝打包成DLL

    2019/5/7      點擊:

    方法一:用vs新建工程-C#庫(kù),添加(jiā)UnityEngine.dll引用,注意.netframwork選(xuǎn)3.5,編譯C#腳本得到dll;

    方法二:使用mono的mcs,具體如(rú)下

     c#提供了(le)dll打包,但是unity中由於涉及到unity的自身dll,如UnityEngine.dll,我們一般寫的很多代碼(mǎ)都會涉及(jí)到對這個dll的引用,在unity中建代碼文件都(dōu)會默認添加對此(cǐ)dll命名空間的使用,using UnityEngine; 

    因此在涉及到使用此dll在打包dll的時候就要有(yǒu)點特殊處理。

    項目中常見(jiàn)的是對Debug的二次封裝,由於調試的(de)需求,在(zài)項目開發周期debug是個很重要且常用的類,但是debug的效率實在是不(bú)忍直視,所以在打包apk時出於效率考慮就要屏蔽掉debug的調試,這時要做的可能是刪(shān)除掉所有(yǒu)對應的代碼,這基本上是不可能的,不說這些調試代碼可(kě)能以後(hòu)會用到,每次打包都刪一次也(yě)不實際。還有一種是設定bool值,每次調用Debug類的時候,判定(dìng)此bool值,每次都要判定,這本書就(jiù)代碼冗餘,設計的不合理。這裏大家想到的可能都是(shì)二次封裝了。在封裝一個類,調用Debug的時候調用封裝的類,但是這又設計到一個問題,Debug調(diào)試的一個重(chóng)要功能就是顯示在控製台的(de)信息雙擊可(kě)以跳到指(zhǐ)定代碼,如果這(zhè)樣二次(cì)封(fēng)裝的話就(jiù)每次跳到封裝的代碼裏,而不是我們想要的地方。有人說可以看堆棧調用信息,可(kě)是每次都看,很累的。對(duì)於這個問題,便是將二次封裝類進行dll打包。

    囉嗦了一大堆,隻是(shì)說明(míng)為什(shí)麽要對Debug進行(háng)二次封裝和為(wéi)什麽要用dll的(de)原(yuán)因,具體方法如下,unity官方提供(gòng)了相應的教程。

    這裏以Windows係(xì)統平台為例,大概(gài)講解(jiě)一下流程:

    1.先進入(rù)unity的安裝目錄,找到你引用的(de)dll,地址類似於C:\Program Files\Unity\Editor\Data\Managed 
    如你引用了UnityEngine.dll,那麽久複製對應的文(wén)件。

    2.將複(fù)製的文件(jiàn)拷貝到硬盤根目錄,根目(mù)錄的緣故是為了接(jiē)下來(lái)方便操作,也可以在根目錄下(xià)創建一個文件夾(jiá),將文件放(fàng)入這個文件夾。這裏示例為F盤(pán)根目錄 。注意:不建議放在桌麵

    3.將你要打包dll的文件複製到同個地方(示例為(wéi)F盤根目錄)

    4.開cmd界麵,進入執行文件(jiàn)的目錄,路徑大概如下 
    C:\Program Files (x86)\Unity4.6\Editor\Data\MonoBleedingEdge\lib\mono\2.0 
    根據自己的安裝目錄進行參考

    5.執行命令,命令(lìng)大概(gài)如下 
    mcs -r:F:\UnityEngine.dll -target:library F:\DebugCustom.cs 
    其中mcs是(shì)命令是要執行的命令,F:\UnityEngine.dll是引用的dll,如(rú)果你引用了多個dll,可以加個空格後繼(jì)續添加(jiā),-target:library是指將文件打包成dll,F:\DebugCustom.cs是你要打包成dll的文件,如(rú)果文件有多個(gè),同樣加空格然後在後(hòu)麵添加

    上麵就(jiù)是流程了,看(kàn)完了後不知(zhī)道(dào)有沒有看出問什麽會有上麵那個注意了,第(dì)五條中空(kōng)格很關鍵,而(ér)我們桌(zhuō)麵的路徑有的會(huì)有空格,win7的(de)沒有,好像是Xp有,所以隻是不建議,而不是不能(néng)。大家根據自己的情況調整就行。

     引申(shēn):混淆器可以用來安全保護編譯後的dll,具體原理是去除代(dài)碼中所有的(de)symbol信息。

    AV永久天堂网_奇米狠狠色_亚洲欧美日韩动漫_欧美日韩视频在线观看免费一区二区_日韩精品一二三区_国产AV网站18禁止人_久久久久久精品人妻免费网站不卡_国产最新视频_另类免费视频在线视频二区_久久精品免视国产