unity3d游戏开发之项目程序加密.doc_第1页
unity3d游戏开发之项目程序加密.doc_第2页
unity3d游戏开发之项目程序加密.doc_第3页
unity3d游戏开发之项目程序加密.doc_第4页
unity3d游戏开发之项目程序加密.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如果稍微关注过这方面知识的朋友,应该知道unity3d做出来的项目是非常容易被反编译的,被反编译后你的所有资源和代码都将会毫无遮掩的呈现出来。由于.net本身没什么加密的措施,所以我们一般都是使用混淆代码的方式来对程序进行一定的加密。 接下来2篇博客,阿赵将会简单的讲一下我自己在unity3d的程序加密做法。首先第一篇,我会简单的说明一下怎样在unity3d里面使用dll动态链接库,然后第二篇会说明怎样对dll进行混淆。开始第一篇的内容: 首先,我们需要新建一个类库项目,可以使用visual studio或者monodevelop来做。我这里是使用vs2012来创建: 选择好项目类型、写好项目名称。 新生成的项目里面默认有一个class1类 可以通过在解决方案资源管理器里面进行重命名改成自己想要的类名,比如我这里改成了math3d 然后写一个简单的静态方法在里面。这里我写了个最简单的加法(add)。也可以不写静态方法,写出普通的public方法,用的时候new对象出来调用该方法也可以。这和正常的c#编程没区别。 写好之后,在资源管理器里面选择“生成”,那么在项目的bin/debug 里面就会看到dll文件,比如我这个额项目就是azhaodll.dll 接下来在unity3d里面创建你需要的项目,把刚才的dll文件随便放到项目的assets文件夹里面。关于这个dll文件的存放位置,网上有些人说是必须放在插件文件夹里面,其实是不需要的,放在任意位置它都能被识别出来。当然,按照良好的项目路径习惯,我们建立一个专门放插件的文件夹来存放dll文件,也是合理的。 然后在unity3d里面创建一个c#脚本,写一行简单的代码来调用我们刚才写的math3d.add方法。 这时会发现math3d类不能识别,我们using azhaodll命名空间 然后在unity3d里把脚本挂到摄像机上,运行,可以看到打印出正确的结果了,这就证明了dll已经被成功调用了。 回顾刚才我们做的一些小细节,在类库项目的math3d类里面。我们默认的使用了azhaodll命名空间。那么假如我们不使用命名空间,或者使用其他的命名空间行不行?答案是可以的,命名空间可以任意的更改,如果不用命名空间,那么在调用的时候就不需要using,如果使用了其他命名空间,对应的using其命名空间就行了。以下试试把命名空间删掉: 那么在unity3d里面调用就直接可以用了:运行的结果也是正常的: 当然,不太建议不使用命名空间,这样做一个说明,是因为unity3d本身创建的脚本默认没有使用命名空间,只是想说明如果不想麻烦,直接把unity3d没有命名空间的脚本直接拿来编译也是可以的文章出处【狗刨学习网】。 再次回顾细节,刚才我们使用的是原生的c#,假如我们需要在类库项目写调用unity3d本身功能的方法怎样办呢?在unity3d的安装目录editordatamanaged里面,找到unityeditor.dll和unityengine.dll两个文件。然后在类库项目里面添加引用,把这两个dll添加进来 这时候,我们就可以在类库项目里面using unityengine来使用unity3d的方法了,比如我们这里简单写了个creategameobject方法,生成一个名字为“createbydll”的gameobject。 生成dll,放回unity3d项目里,我们就可以调用这个方法: 运行,看到这个叫做“createbydll”的物体生成出来了。 通过以上的说明,我们会发现其实生成自己的dll在unity3d里面用是很简单的事情。我们还可以添加其他自己写好的类进类库项目,然后生成dll来使用。 最后说一下注意事项了。 刚才生成的dll在unity3d编辑器里面基本上都是能用的,但不一定能通过编译。有可能在编译成exe或者apk等时会报错。需要注意的是,类库项目使用的.net framework版本。我自己的尝试是,使用.net 4.0以上版本发布的dll,在unity3d里面会编译不通过。所以我们可以用2.0或者3.0之类的版本来发布。 还有一些情况是某些现成的dll动态库是使用完整的.net2.0来发布的,所以我们在编译的时候有可能需要选择完整的.net 2.0来发布。 到了这一步,我们就可以把unity3d的整个代码文件夹里面所有的脚本剪切到类库项目里

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论