转载地址: http://www.unitymanual.com/archiver/tid-5616.html
unity在Build后生成的dll文件是很容易被一些反编译工具反编译, 比如(reflector)就可轻易的使你的代码赤裸裸展现在别人的面前,但是unity的dll也不可像.net的dll那样有(.net reactor、Dotfuscator Community Edition等等工具)可对其加密混淆,在unity代码中的函数比如(Start、Update、OnGUI)的函数是不可被混淆的,在混淆自后毫无疑问的程序将不可运行,这些函数将调用失败,这显然是不行的。哎!这个unity中的代码混淆起来真是限制多多啊.
不过有问题就有解决方法
现在小编就把解决这个问题的几个方法发布一下:
方法一:使用Obfuscator插件,此插件在unity圣典上市可以下载到的.此插件会把你的变量混淆;
下载此插件后创建一个新的unity项目,导入此插件在工具栏出现Tools
然后点击Tools选择你要混淆代码所在的文件夹,接下来就会自动运行进行混淆。
到此over了,嘻嘻嘻.................
注意:
在混淆之后你运行场景有的功能可能会失效,如果你代码中有js调用C#要特别注意GameObject.GetComponent(Type);这个可能会获取不到你要的脚本或组件 。
方法二:使用CodeGuard插件:
此插件需要在 Asset Store中购买,价值40刀。(真贵..........靠!)
https://www.assetstore.unity3d.com/#/content/8881CodeGuard
这个插件也有一个便宜的,价值50人名币,在圣典的资源上......
方法三:是一位网友在博客中提到的:
在项目初期就考虑如何对项目进行分层,将需要保护的内容放置在被混淆的层中。
http://hi.baidu.com/thejavafan/item/5bc8d20a23f0f7d8dde5b033