美文网首页Unity热更新
游戏热更新之Lua脚本组件挂载(Unity-XLua)

游戏热更新之Lua脚本组件挂载(Unity-XLua)

作者: 程序小妖精 | 来源:发表于2019-06-12 17:27 被阅读62次


      游戏,当然要热更哦,否则资源程序变动时,重新下载安装包,费时费事,用户流量流失。当然我们Unity开发引擎来讲解,用的是腾讯的XLua,在这要感谢一下腾讯做出的贡献。话不多说,开始撸代码。

       热更新,我们更的是资源,和逻辑代码,所以有了所谓的资源热更,代码热更。资源的话,我们一般会打成ab包,放在服务器,更新下来,这一块在我的文章MD5校验和资源代码热更有讲到,可以去看一下。但代码热更,我们就会用到lua去开发逻辑代码,那么Lua脚本怎么执行呢!成为阻力,给大家讲解一下。我们Unity中,可以执行理解为执行的都是组件,C#代码可以当成组件,挂载在物体上,我们就以这个为思路,我们把Lua脚本也当成一个组件,AddComponent加载到物体上,Lua脚本是无法这样挂载到物体上的,这时我们就需要一个中介,事先写好的通用组件C#代码来连接我们的Lua脚本,接下来看代码

      我们建一个LuaComponent.CS的脚本,如下

我们能用到的函数模板声明,如luaStart 相当于我们C#中的Start.


这个方法,看到了GameObject,LuaTable,把声明的lua脚本加载到物体上

初始化lua函数模板

C#函数和lua函数映射。

这个通用中介脚本写好了,先放一下,接下来,我们写一个lua逻辑脚本,比如登录界面

里面的方法逻辑如Awake方法,我们声明我们的UI

注意注意,讲解一下,这里的Awake,Start,等系统方法函数是和我们LuaComponent.cs

这个方法对应着的。

还有一个非常重要的就是逻辑代码里要有

加入原表

到此为止,我们的逻辑代码也有了,组件代码也有了,关联也知道了,怎么运行呢

简单呀,我们写一个Lua脚本配置类,XLua里我们可以把他设置为程序入口(相关可以去GitHub上学习一下

,此文章不做讲解,下次文章讲解这一块)

Lua配置类LuaToCsConfig.lua

我们首先判断是否为当前场景,如

如果是当前场景,我们找到我们要添加脚本的物体,当然我们也可以直接在此物体上挂上LuaComponet.cs脚本,

比如LoginPanel这个Gameobject,如果为空的话我们就创建这个物体,然后我们在这个物体上加载上我们的登录Lua脚本LoginView

好了,这样逻辑代码我们就可以用lua写了,当添加功能或者修改lua脚本,只需要把修改的放在服务器上,与本地的通过md5校验,就可以实现热更新了。

我的一句话:喜欢的话,点个赞,有帮助的话,赏1毛。

相关文章

  • 游戏热更新之Lua脚本组件挂载(Unity-XLua)

    游戏,当然要热更哦,否则资源程序变动时,重新下载安装包,费时费事,用户流量流失。当然我们Unity开发引擎来...

  • Unity-uLua

    热更新实现方式: 1、使用Lua脚本编写游戏的UI或者其他逻辑,Lua是一个精悍小巧的脚本语言,可以跨平台运行解...

  • Lua脚本热更新

    本文继续来写一下脚本代码的热更新在游戏客户端或服务端的实现,之前写了一篇【客户端python热更新】里面提到热更新...

  • 关于lua中的知识点整理

    0.lua的特性是什么? 1)lua是一种轻量级的脚本解释语言,在游戏开发过程中多用于实现需要进行热更新的逻辑 它...

  • Lua 脚本解密

    教程: 一个Lua脚本的解密过程 lua脚本的加密和解密(GG游戏脚本) 下载地址: unluac_2015_06...

  • lua 自动获取ui组件并生成代码工具

    gameobject上挂载 写wraper lua中这样获取 ui组件自动获取(editor代码) ui代码生成 ...

  • 如何编译各平台使用的库-以编译tolua为例

    做U3D手机游戏,最热门的技术组合是c#+lua,使用lua是因为可以热更新,而将c#与lua粘合起来的框架,目前...

  • 【学堂上新】用Lua打造类型系统:typesys

    据统计,有70%以上的游戏使用 Lua 来实现热更新,Lua的动态特性在带来便利的同时,也引入了“易出错、排查难、...

  • React 16.3.0生命周期

    组件的生命周期可分成三个状态 挂载:组件被实例化并挂载在到dom树这一过程称为挂载 更新:当组件的属性或者状态改变...

  • 热更新小总结

    之前在为游戏做热更新的时候,一直用WAX-Lua的方案,后来Apple强势拒绝了WAX的方案,这里Lua并没有背锅...

网友评论

    本文标题:游戏热更新之Lua脚本组件挂载(Unity-XLua)

    本文链接:https://www.haomeiwen.com/subject/klxzuxtx.html