unity python热更新_Unity3D热更新方案总结

对于大型应用,更新成本太大。

终极状态不重新下载、不停机状态下完全变换一个应用的内容。

三、如何热更新?Unity3D的热更新的方法比较

3.1、Android应用的热更新

•将执行代码预编译为assemblydll。

•将代码作为TextAsset打包进Assetbundle。

•运行时,使用Reflection机制实现代码的功能。

•更新相应的Assetbundle即可实现热更新。

3.2、Android与iOS热更新的异同

•苹果官方禁止iOS下的程序热更新;JIT在ios下无效。

•热更新方案:Unity+Lua插件。

3.3、使用Lua插件进行iOS热更新的原理

3.4、Unity热更新的注意点

•需要更新的代码、资源,都必须打包成AssetBundle(建议使用未压缩的格式打包)

•熟悉Unity的几个重要的路径

• Resources(只读)

• StreamingAssets(只读)

• Application.dataPath(只读)

• Application.persistentDataPath(可读写)

3.5、重要路径之之Resources

• Resources文件夹下的资源无论使用与否都会被打包

•资源会被压缩,转化成二进制

•打包后文件夹下的资源只读

•无法动态更改,无法做热更新

•使用Resources.Load加载

3.6、重要路径之StreamingAssets

•流数据的缓存目录

•文件夹下的资源无论使用与否都会被打包

•资源不会被压缩和加密

•打包后文件夹下的资源只读,主要存放二进制文件

•无法做热更新

• WWW类加载(一般用CreateFromFile,若资源是AssetBundle,依据其打包方式看是否是压缩的来决定)

•相对路径,具体路径依赖于实际平台

•Application.streamingAssetsPath

• IOS: Application.dataPath + “/Raw”或Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw

3.7、重要路径之Application.dataPath

•游戏的数据文件夹的路径(例如在Editor中的Assets)

•很少用到

•无法做热更新

• IOS路径: Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data

3.8、重要路径之Application.persistentDataPath

•持久化数据存储目录的路径(沙盒目录,打包之前不存在)

•文件夹下的资源无论使用与否都会被打包

•运行时有效,可读写

•无内容限制,从StreamingAsset中读取二进制文件或从AssetBundle读取文件来写入PersistentDataPath中

•适合热更新

• IOS路径: Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents

3.9、使用Lua插件进行iOS热更新的总体流程

四、支持Unity iOS热更新的各种Lua插件的对比

4.1、uLua(asset store)

• uLua插件原生版本,开山鼻祖

•不会产生静态代码

•反射机制,效率低下,速度慢,gcalloc频繁

•已停止更新维护,不支持Unity5.x,淡出主流

4.2、uLua & cstoLua

•开发平台成熟稳定,Bug修复迅速

•开发者众多,资源丰富

•静态方法,性能优

•有成功商业产品案例(啪啪三国、超神战队、酷鱼吧捕鱼、绝地战警、这不是刀塔等)

•都是基于原生版本的改进;未来,两者会合并成一个插件

开源项目地址:https://github.com/topameng/CsToLua

4.3、sLua

•静态方法,性能优

•核心代码简洁

•资源较少,开发平台不够成熟稳定

•无成功商业产品案例成功商业产品案例

•基于原生版本的改进

开源项目地址:https://github.com/pangweiwei/slua

4.4、C#Light(L#)

淡出主流,想要了解的小伙伴点击这里:https://github.com/lightszero/LSharp

4.5、uniLua

• c#实现的Lua虚拟机,非完整方案

•淡出主流

4.6、XLua

腾讯开源xlua

https://github.com/Tencent/xLua

4.7、各位专家给出的分析

下图纵坐标为测试用例,横坐标是消耗时间或内存分配(对数坐标)。

综合来看肯定是uLua & cstoLua会更好一些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值