Unity开发源码的加解密二一打包自动加密

在前一篇Unity开发源码的加解密 涉及的内容比较多,最终得到了加密后的Assembly-CSharp.dll和解密libmono.so。如何能在打包的时候自动处理呢?下面介绍一种方式。

[PostProcessBuild]标签:Add this attribute to a method to get a notification just after building the player. 作用就是获取打包后通知,执行添加后的方法.

处理函数如下:

看一下iOS具体的处理,可以添加引用库,修改info.pl[……]

Read more

Unity开发源码的加解密一mono.dll和libmono.so编译

源码的加密,只是加了一层防护,不是绝对的安全,参考网络大部份类似的实现方式:

  1. 混淆自定义库
  2. 加解密Assembly-CSharp.dll
  3. 自动化工具集成

一、使用各种加密方法制作C++动态库DEncrypt.dll

加密方法,使用xxtea示例

解密方法

检查导出的方法

除了xxtea,也可以使用des,aes等对称加密方式

参考:C++动态库[……]

Read more

Unity开发之设计模式—状态模式

曾记录一篇关于设计模式的日志:《Head First 设计模式》——学习总结,在那篇文章中只是记录一些重要的概念,缺乏实战,也不好理解。下面记录在项目中使用到的设计模式,理论和实际相结合才有价值,“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们。”

在回合制模式的战斗游戏中,为了很好控制角色的行为,使用有限状态机会容易的多。

quick-lua版本中提供有限状态机实现,是从js移植过来,很容易使用(时间有点久可能记错了),js版本

在C#使用状态机的问题就是类比较多。状态机的实现方式也有很多种,我选择其中一种来实现,一个子状态接口和状态机类,代[……]

Read more

Unity开发之设计模式—观察者模式

曾记录一篇关于设计模式的日志:《Head First 设计模式》——学习总结,在那篇文章中只是记录一些重要的概念,缺乏实战,也不好理解。下面记录在项目中使用到的设计模式,理论和实际相结合才有价值,“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们。”。

观察者模式也是比较常见的设计模式,也容易理解。观察者模式的实现方式也有很多种,先列出项目中使用的方式

  • 观察者模式实现方式一Java中的实现

定义订阅者行为接口

出版者父类,类中包含订阅者对象超类型列表,OO编程原则“针对接口编[……]

Read more

Unity开发之设计模式—单例模式

曾记录一篇关于设计模式的日志:《Head First 设计模式》——学习总结,在那篇文章中只是记录一些重要的概念,缺乏实战,也不好理解。下面记录在项目中使用到的设计模式,理论和实际相结合才有价值,“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们。”。

单例模式是最简单也是用的最多一种模式,概念简单就不再详细说明了

C#中定义单例模式

模板定义及示例

Unity中挂在组件上的单例
[crayon-5c1336ff1[……]

Read more

《巴比伦最富有的人》:最古老、最普遍、最有效的七条财富法则

转自:捷越联合JieyueUnited

最近专业学习有些懈怠,坚持的事情也处于中止状态,对于是否坚持过去做的事情心里一直在纠结,直白地说就是迷茫。对未来,对生活,对生命,以及对自己的无知,错失飞跃大好的机会。

当然这段时间也不是什么也没有做,买了几本书金融启蒙的书,看完两三本,虽然是入门的书,对我来说收获也挺多的。因为活了这么久,看了各种出处的不少文章,懂的也只是一知半解,在完整看完一本书的时候,才对生活,对金融有了完整的认识。发现不知道的、一直困惑和迷茫的事情,有的人在很早的时候就已经遇到并有解决的方法了,有多早,早在几千年前!转载一下这本书的总结,有兴趣的话建议还是看看这本书。

[……]

Read more

Shadowsocks 使用总结

  1. VPS服务器购买: VIRMACH 官网 (我选择最便宜的一款,支付宝支付,服务器需要人工审核,大概几个小时通过)
  2. 重新安装系统:Ubuntu 12.04 x86
  3. 安装配置服务端:Shadowsocks-go一键安装脚本 
  4. 客户端配置 从 shadowsocks-windows下载windwos客户端,配置如下:
  5. 下载安装SwitchyOmega Chrome插件,添加情景shadow_sockets 代理协议SOCKET5 代理服务器:127.0.0.1 代理端口:1080
  6. 在chrome浏览器右上角选择SwitchyOmega的场景sh[……]

Read more

Unity开发之类库封装与调用

软件项目随着规模的增大,难免需要分模块,分类库。同时也便于积累,将和项目无关的功能封装起来,方便以后用于其他项目。下面记录一下Unity中封装自定义的类库。

使用VS或MonoDevelop创建类库项目:
1.引用UnityEngine.dll类库(Mac下目录Applications/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll
Windows位置Program Files\Unity\Editor\Data\Managed\UnityEngine.dll,版本不一样位置可能不同);
2.设置项目属性:Target f[……]

Read more

Unity开发之插件—高德地图定位和地理围栏(iOS)

在前一篇记录了使用Unity编写高德定位及地理围栏的插件,下面介绍一下iOS。

复制一份高德的示例工程officialDemoLoc(省了配置工程,和引用库文件),创建AMapHelper类文件(.h和.mm),头文件主要包含AMapHelper单例类,和导出的几个方法,如下:

定位和围栏

导出函数实现:

将两个文件复制到Unity工程目录,保存在Plugins/iOS目录下,iO[……]

Read more

Unity开发之插件—高德地图定位和地理围栏(Android)

Unity3d是一款3D游戏开发引擎,也可以开发2D游戏。可一键式发布到多种平台,可发布到iOS,Android,Windows,macOS等。其原理就是在底层帮开发者根据不同平台做了处理。但这并不是万能的,有时候我们需要自己来开发Unity和平台API交互的程序,即Unity插件。下面总结开发iOS和Android插件。

Android制作Unity插件请参考:在 Unity 中使用 Android SDK ,简单有效。下面说一下集成高德定位的部分。

下载高德定位sdk,集成的版本是AMap_Location_V3.5.0_20170731.jar,将下载好的文件放置在libs目[……]

Read more