樱花草WWW日本在线观看,色婷婷精品大在线视频,久久婷婷五月综合色国产香蕉,老牛精品亚洲成AV人片

  • unity3d將C#類(lèi)封裝打包成DLL

    2019/5/7??????點(diǎn)擊:

    方法一:用vs新建工程-C#庫,添加UnityEngine.dll引用,注意.netframwork選3.5,編譯C#腳本得到dll;

    方法二:使用mono的mcs,具體如下

     c#提供了dll打包,但是unity中由于涉及到unity的自身dll,如UnityEngine.dll,我們一般寫(xiě)的很多代碼都會(huì )涉及到對這個(gè)dll的引用,在unity中建代碼文件都會(huì )默認添加對此dll命名空間的使用,using UnityEngine; 

    因此在涉及到使用此dll在打包dll的時(shí)候就要有點(diǎn)特殊處理。

    項目中常見(jiàn)的是對Debug的二次封裝,由于調試的需求,在項目開(kāi)發(fā)周期debug是個(gè)很重要且常用的類(lèi),但是debug的效率實(shí)在是不忍直視,所以在打包apk時(shí)出于效率考慮就要屏蔽掉debug的調試,這時(shí)要做的可能是刪除掉所有對應的代碼,這基本上是不可能的,不說(shuō)這些調試代碼可能以后會(huì )用到,每次打包都刪一次也不實(shí)際。還有一種是設定bool值,每次調用Debug類(lèi)的時(shí)候,判定此bool值,每次都要判定,這本書(shū)就代碼冗余,設計的不合理。這里大家想到的可能都是二次封裝了。在封裝一個(gè)類(lèi),調用Debug的時(shí)候調用封裝的類(lèi),但是這又設計到一個(gè)問(wèn)題,Debug調試的一個(gè)重要功能就是顯示在控制臺的信息雙擊可以跳到指定代碼,如果這樣二次封裝的話(huà)就每次跳到封裝的代碼里,而不是我們想要的地方。有人說(shuō)可以看堆棧調用信息,可是每次都看,很累的。對于這個(gè)問(wèn)題,便是將二次封裝類(lèi)進(jìn)行dll打包。

    啰嗦了一大堆,只是說(shuō)明為什么要對Debug進(jìn)行二次封裝和為什么要用dll的原因,具體方法如下,unity官方提供了相應的教程。

    這里以Windows系統平臺為例,大概講解一下流程:

    1.先進(jìn)入unity的安裝目錄,找到你引用的dll,地址類(lèi)似于C:\Program Files\Unity\Editor\Data\Managed 
    如你引用了UnityEngine.dll,那么久復制對應的文件。

    2.將復制的文件拷貝到硬盤(pán)根目錄,根目錄的緣故是為了接下來(lái)方便操作,也可以在根目錄下創(chuàng )建一個(gè)文件夾,將文件放入這個(gè)文件夾。這里示例為F盤(pán)根目錄 。注意:不建議放在桌面

    3.將你要打包dll的文件復制到同個(gè)地方(示例為F盤(pán)根目錄)

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

    5.執行命令,命令大概如下 
    mcs -r:F:\UnityEngine.dll -target:library F:\DebugCustom.cs 
    其中mcs是命令是要執行的命令,F:\UnityEngine.dll是引用的dll,如果你引用了多個(gè)dll,可以加個(gè)空格后繼續添加,-target:library是指將文件打包成dll,F:\DebugCustom.cs是你要打包成dll的文件,如果文件有多個(gè),同樣加空格然后在后面添加

    上面就是流程了,看完了后不知道有沒(méi)有看出問(wèn)什么會(huì )有上面那個(gè)注意了,第五條中空格很關(guān)鍵,而我們桌面的路徑有的會(huì )有空格,win7的沒(méi)有,好像是Xp有,所以只是不建議,而不是不能。大家根據自己的情況調整就行。

     引申:混淆器可以用來(lái)安全保護編譯后的dll,具體原理是去除代碼中所有的symbol信息。

    国产女主播高潮在线播放| 暗呦交小U女国产精品视频| 国产精品VA在线播放我和闺蜜| 欧美人与物VIDEOS另类| 欧美成人一区二区三区在线视频| 成人午夜爽爽爽免费视频|