Unity3D热更新之LuaFramework篇[10]--总结篇

背景

19年年初的时候,进到一家新单位,公司正准备将现有的游戏做成支持热更的版本。于是寻找热更方案的任务就落在了我头上。

经过搜索了解,能做Unity热更的方案是有好几种,但是要么不够成熟,要么不支持iOS平台,相对来说,还是用Lua来实现比较靠谱。

而Lua的热更方案也有好几种:xLua、toLua和sLua。

其中xLua擅长打补丁,sLua难以理解,而toLua因为有着LuaFramework的存在,入门门槛低,因此我就选择了toLua(LuaFramework)。

由于对Lua语言不太熟悉,又对热更没啥概念,tolua也没啥文档,说是门槛低,但对当时的我说来,想入门还是很困难的。

边学边做,差不多花了一个月的时间才理顺了框架。

在这个过程中,我花了很多时间在网上搜索相关资料,但是找到的有用的资料甚少,大部分都是浅尝辄止的学习教程,深入使用的和剖析的极少。

没有人能告诉你哪里该怎么做,下一步应该做什么。

有感于此,在我入门的三个月后,决定将我的LuaFramework学习之路记录下来,一是为了锻炼一下自己的表达能力,二是希望我的学习经历能对后来人有所帮助。因此才有了这一系列文章。

本系列文章重在操作,而少讲原理。一是我自己也只勉强学会了使用,对原理理解并不透彻,怕误导他人;二是觉得先用起来,然后再回头去理解原理是一种更适合的方式。

文章内容有点浅,但是一个完整的lua热更游戏开发过程应该使用到的东西都有涉及,希望对你有所帮助。

因为我本人也是初学者,文章内容难免有错误和疏漏,欢迎指正。

 

系列文章链接

为方便综合学习,现将这一系列文章的链接都列在此处:

Unity3D热更新之LuaFramework篇[01]--从零开始

Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

Unity3D热更新之LuaFramework篇[03]--prefab加载和Button事件

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween

Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的

Unity3D热更新之LuaFramework篇[07]--怎么让unity对象绑定Lua脚本

Unity3D热更新之LuaFramework篇[08]--热更新原理及热更服务器搭建

Unity3D热更新之LuaFramework篇[09]--资源热更新与代码热更新的具体实现

 Unity3D热更新之LuaFramework篇[10]--总结篇

 

文章使用的项目也已经上传到Github,地址:https://github.com/tanyuqing/LuaFramework-in-action

项目所使用的Unity版本为5.5.5f1,其它版本未验证。

 

文章参考

背景里我虽然吐嘈关于LuaFramework有用的资料太少,但是还是有的。

我能学会这个框架的使用,罗培羽 大佬 写的一系列关于LuaFramework的文章,对我起了极大作用。这些文章对LuaFramework框架的各种概念有详尽的解释,价值很高。

现将相关文章链接收录在此,以供参阅。

Unity3D热更新LuaFramework入门实战(1)——代码热更新

Unity3D热更新LuaFramework入门实战(2)——资源热更新

Unity3D热更新LuaFramework入门实战(3)——编写Lua逻辑

Unity3D热更新LuaFramework入门实战(4)——Lua组件

Unity3D热更新LuaFramework入门实战(5)——UI

Unity3D热更新LuaFramework入门实战(6)——网络

Unity3D热更新LuaFramework入门实战(7)——PureMVC

Unity3D热更新LuaFramework入门实战(8)——声音管理器

Unity3D热更新LuaFramework入门实战(9)——线程管理器

 Unity3D热更新LuaFramework入门实战(10)——示例程序

 

罗大这一系列算得上是LuaFramework的高阶使用教程了,我写的那些只能算是初阶入门指南,不过我的目的就在于此,毕竟要先入门才能往高处走。

 

新的热更方案

ILRuntime

这是我最近才了解到的一个用c#进行热更的框架,引用网上的一段评价来说明此框架。

ILRuntime是掌趣科技开源的unity热更框架, 这个框架打破了C#不能做ios平台热更的规则,在ios平台中是以ILRuntime + DLL 的方式解释执行,当然是在IL2CPP下。
有了这个框架,开发者只需使用C#这一种语言即可,而不用在C#和lua之间切换,但这个框架也是有很多坑的,在一些方面性能是不如lua的,Git上的贡献者也很少,暂时没有经过大量项目的考验,用的人还是比较少的。

希望这个框架能够成熟,毕竟不用定lua代码,能省好多事。

相关链接:http://ourpalm.github.io/ILRuntime/public/v1/guide/index.html

 

感谢

在我这一系列每篇文章的最后,总是少不了一个人的身影。感谢 马三小伙儿 大佬的解惑和长期以来的支持。

返回主页马三小伙儿 也是园子里的一们unity大牛,精通unity、android开发,熟悉网络原理,且还有自己的unity开发框架 ColaFrameWork 

是我学习路上的榜样, 感谢!

 

结语

这一系列文章到这里应该就结束了,没讲的东西还有不少,但如果每一篇你都跟着做了,现在应该也基本通透了,其它的都是细枝末节,自己摸索摸索也应差不多了。

如果关于这一系列文章你有啥疑问,可以直接评论或给我发邮件联系我。

QQ邮箱:594006414@qq.com

 

---------2019-07-30  01:27---------

 

转载于:https://www.cnblogs.com/imteach/p/11267312.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程主要是针对ILRuntime设计一个独立的脚本热更新框,框架的优势:1.将代码热更脱离Assetbundle资源热更,独立的部分更适用于各种不同的框架。2.加快项目的逻辑更新,bug修复.(后期修bug,多数情况下并不用动到资源,只需要更新脚本代码,无需重走资源打包发布流程,大大提升效率)3.提供热更模式和正常开发模式的快速切换接口,可以让队友像平常一样去开发.4.不依赖市面上的任何AB框架,完全兼容市面上各种不同的AB框架.5.重点:希望通过它,帮助你学习、了解ILRuntime真正在项目中的应用.框架的将提供以下这些接口,这些接口将从0开始,在Unity里将C#脚本编译成dll,然后将dll放到服务器上,再将dll下载下来,进行加载,到最后从Unity主工程调用热更新的代码逻辑.1.Create hotfixdll接口将热更部分的代码 编译成dll生成dll版本配置(MD5)2.更新对比接口本地跟服务器的dll进行版本对比3.下载热更dll下载dll本身的文件下载版本记录文件4.加载热更dll加载dll实例化:AppDomain初始化:注册跨域继承适配器注册委托适配器LitJson重定向调用性能优化(CLR绑定功能)调用热更接口Hotfix.HotfixApplication.Main 进入热更逻辑5.ILMonoBehaviour用于监听组件的生命周期,实际是桥接(调用)热更的逻辑AwakeStartEnableUpdateLateUpdate.......6.添加其他常用的库DOTweenLitJsonSpineGoogle.ProtobufTextAnimation可以根据上面的方式,自行添加依赖的库... 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值