与热更新相关的文件夹

需要更新的代码、资源,都必须打包成AssetBundle(建议使用未压缩的格式打包),需要熟悉Unity的几个重要的路径 • Resources(只读) • StreamingAssets(只读) • Application.dataPath(只读) • Application.persistentDataPath(可读写)

其中,只有Application.persistentDataPath适合做热更新。

关于热更新

苹果iOS系统一律禁止热更新。
Android支持热更新,Unity的热更新方案包括:

  1. AssetBundle (1)项目开发中,可以将部分逻辑提取至一个单独的代码库工程中,打包为DLL; (2)将DLL打包为AssetBundle; (3)Unity程序动态加载AssetBundle中的DLL文件,使用Reflection机制来调用代码。 assetbundle是Unity支持的一种文件储存格式,也是Unity官方推荐的资源存储与更新方式,它可以对资源(Asset)进行压缩,分组打包,动态加载,以及实现热更新,但是AssetBundle无法对Unity脚本进行热更新,因为其需要在打包时进行编译。
  2. 使用Lua进行热更新。