对于资源加密的思考
很多人认为ab包不需要加密,但是这样的人我认为,他思考问题的方式是片面的且狭隘。
是否加密应该根据项目本身的资源价值来决定。是否提高资源的破解难度,比如对于一个没什么价值的项目,也没有人会想要去拿你的资源,自然不需要。但是比如像闪耀暖暖这样,资源密集且开发代价较高的项目,资源应该在一定程度上保护起来,使得破解的代价也得到提高。当然,对于破解高手而言,破解只是时间问题。这里主要的目标还是提高破解的代价。
很多人认为ab包不需要加密,但是这样的人我认为,他思考问题的方式是片面的且狭隘。
是否加密应该根据项目本身的资源价值来决定。是否提高资源的破解难度,比如对于一个没什么价值的项目,也没有人会想要去拿你的资源,自然不需要。但是比如像闪耀暖暖这样,资源密集且开发代价较高的项目,资源应该在一定程度上保护起来,使得破解的代价也得到提高。当然,对于破解高手而言,破解只是时间问题。这里主要的目标还是提高破解的代价。
Lua作为Unity首选的热更新方式,现在基本上成了商业游戏的标配(iOS的机制)。同时不得不说的是,使用Lua,可以避开大型项目中长时间编译的问题(其实这个问题在新版本的Unity中已经解决)。还有一个好处是,服务器可以推送一段Lua代码到客户端,相当于做实时Patch,维护非常高效。但是又不得不提,Lua是一个坑,开发效率和游戏运行性能都会受到一定的影响。所以使用者一定要在适当的环境下使用,莫要一概而全。
Unity有一个Find References in Scene功能非常好用。在Project面板中右键一个文件,选择Find References in Scene就可以在场景中找到所有存在对这个文件有引用的物体。但是很多时候,我们更加需要知道的是,这个场景里面到底引用了哪些文件,比如做优化的时候。
这里有一个插件叫做ResourceChecker,它可以列举出所有引用到的texture/mesh/mat等。但是他也有一个小小的问题,对于自定义脚本的引用没有效果。
在《Unity插件开发:PrefabUtility--Prefab实例引用断开和替换》中我们使用了PrefabUtility实现了Prefab实例的引用断开和替换功能,现在我们继续使用PrefabUtility来实现场景中所有Prefab实例的Apply功能。
在很多情况下,我们会在场景中修改Prefab实例,这些修改理应apply到Prefab上,但是有时候会忘记Apply,事后再去找,可能花费很多时间。或者在一些条件下,需要对场景中的一些Prefab实例进行批量修改。这时候也需要批量apply到Prefab上。
近段时间,ml-agent升级到了v0.3版本,做了一些变更,导致之前的文档《ml-agent v0.2:Win10下环境安装》部分内容无法在ml-agent v0.3中使用。最主要的是ppo.ipynb文件移除,导致无法用ppo进行训练。所以这里进行重新整理。
Tag:Unity文件,Unity文件引用,Meta文件,GUID,FileID,LocalID
参考文档:
在unity3d中一般存在这么几种文件
在上一篇《Unity宏+RSP文件定义宏》中提到,Unity生成的VS工程一般是无法打开属性面板的。但是事实上,如果使用VS for unity,通过配置是可以打开这个属性面板的。这里使用Unity版本为2017.2.0f3,使用的是VS for Unity 3.4.0.2版本,IDE为VS2017版本。
打开VS2017,选择菜单“工具->选项”,打开选项面板。在选项面板中选择适用于Unity的工具(如果没有这个,请用VS2017 installer安装相关的组件)。然后在杂项中,将访问项目属性设置为True。确定,并且重新启动VS。注意一定要重新启动VS才会生效。
参考文档:https://docs.unity3d.com/Manual/PlatformDependentCompilation.html
在Unity开发中,可以使用预编译条件,宏定义。比如在一个cs文件中