由于一开始项目(PC端)开发时没有考虑到热更新的问题,等待项目开发完成,才发现再接入热更新框架有些为时已晚,代价有点高。
通过这两天的测试,也参考了网上的一些案例,总结了一个更新策略,在此记录一下,方便以后查看。
暂定目前更新策略为:
1.将打包的资源放置在 Assets/StreamingAssets文件夹下(因为该文件夹在Unity打包成可执行程序时,会将其原封不动的复制到打包程序中)
2.对除了Init初始场景之外的*.unity等场景资源进行打包
3.运行Unity Build程序,可以看到/XXX_Data/Managed文件夹下有很多*.dll文件,其中最重要的是Assembly-CSharp.dll,如果对其反编译,会发现该文件中为开发时的源代码。
4.启动项目,此时项目可以认为是未更新版本
----------------------------分割线----------------------------
5.在源工程中修改场景,修改代码
6.对场景资源重新打包
7.运行Unity打包程序,得到新的Assembly-CSharp.dll文件,
8.启动项目,Init场景会检测是否要对Assets/StreamingAssets下的资源,以及Assembly-CSharp.dll进行更新。
9.待更新后,重新拉取程序(可以通过bat命令实现),即运行更新后的程序
至于是否可行,要等完整的项目测试完毕。
另外,此种方法的安全性有待商榷。
还有,转载注明出处。
测试结果:https://blog.youkuaiyun.com/u013283476/article/details/106576505