标签:git 运行 xxx sharp style 部分 media 进制 静态方法
“热更新”这个词,在Unity3D的应用下,是有些语义错误的,但是作为大家都熟知的一项技术,我们姑且这么叫它,相信很长时间内,大家依然还会这么叫,甚至有人叫它“暖更新”。
热更新,能够缩短用户取得新版客户端的流程,改善用户体验。
? App Store的审核周期难控制。
? 将执行代码预编译为assembly dll。
? 将代码作为TextAsset打包进Assetbundle。
? 运行时,使用Reflection机制实现代码的功能。
? 更新相应的Assetbundle即可实现热更新。
? 苹果官方禁止iOS下的程序热更新;JIT在ios下无效。
? 热更新方案:Unity+Lua插件。
? 需要更新的代码、资源,都必须打包成AssetBundle(建议使用未压缩的格式打包)
? 熟悉Unity的几个重要的路径
? Resources(只读)
? StreamingAssets(只读)
? Application.dataPath(只读)
? Application.persistentDataPath(可读写)
? Resources文件夹下的资源无论使用与否都会被打包
? 资源会被压缩,转化成二进制
? 打包后文件夹下的资源只读
? 无法动态更改,无法做热更新
? 使用Resources.Load加载
? 流数据的缓存目录
? 文件夹下的资源无论使用与否都会被打包
? 资源不会被压缩和加密
? 打包后文件夹下的资源只读,主要存放二进制文件
? 无法做热更新
? WWW类加载(一般用CreateFromFile ,若资源是AssetBundle,依据其打包方式看是否是压缩的来决定)
? 相对路径,具体路径依赖于实际平台
?Application.streamingAssetsPath
? IOS: Application.dataPath + “/Raw” 或Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw
? 游戏的数据文件夹的路径(例如在Editor中的Assets)
? 很少用到
? 无法做热更新
? IOS路径: Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data
? 持久化数据存储目录的路径( 沙盒目录,打包之前不存在 )
? 文件夹下的资源无论使用与否都会被打包
? 运行时有效,可读写
? 无内容限制,从StreamingAsset中读取二进制文件或从AssetBundle读取文件来写入PersistentDataPath中
? 适合热更新
? IOS路径: Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents
? uLua插件原生版本,开山鼻祖
? 不会产生静态代码
? 反射机制,效率低下,速度慢,gcalloc频繁
? 已停止更新维护,不支持Unity5.x,淡出主流
? 开发平台成熟稳定,Bug修复迅速
? 开发者众多,资源丰富
? 静态方法,性能优
? 有成功商业产品案例(啪啪三国、超神战队、酷鱼吧捕鱼、绝地战警、这不是刀塔等)
? 都是基于原生版本的改进;未来,两者会合并成一个插件
开源项目地址:
https://github.com/topameng/CsToLua
? 静态方法,性能优
? 核心代码简洁
? 资源较少,开发平台不够成熟稳定
? 无成功商业产品案例成功商业产品案例
? 基于原生版本的改进
开源项目地址:
https://github.com/pangweiwei/slua
? 淡出主流,想要了解的小伙伴点击这里:
https://github.com/lightszero/LSharp
? c#实现的Lua虚拟机,非完整方案
? 淡出主流
4.6、XLua
腾讯开源xlua
https://github.com/Tencent/xLua
4.7、各位专家给出的分析
下图纵坐标为测试用例,横坐标是消耗时间或内存分配( 对数坐标 )。
熟悉NGUI的小伙伴可以参考这里:
https://github.com/jarjin/SimpleFramework_NGUI
熟悉UGUI的小伙伴可以参考这里:
https://github.com/jarjin/LuaFramework_UGUI
标签:git 运行 xxx sharp style 部分 media 进制 静态方法
原文地址:http://www.cnblogs.com/zhanlang96/p/7259176.html