热更新_UnityXlua热更新

什么是热更新,为什么要热更新?首先我们要先弄清楚这两个问题,众所周知,在游戏开发过程中,我们写的游戏不止有一个版本,因为做的游戏大部分是网络游戏,我们后期肯定会持续不断的更新新的内容,修改BUG,做活动等。一般情况下,我们已经发布了一个版本,后期的版本做出来后,如果要把之前的版本删掉,然后再下载新的版本的话,这无疑是非常糟糕的,因为这样会流失大量的用户,如果每次更新版本都需要重新下载新的大安装包的话。即使你的游戏再好玩,谁也没有那么多的耐心。所以我们必须要有办法,既能快速更新内容,同时不用把之前的东西推到重来,需要什么就更新什么。那么热更新就能做到。

在Unity中热更新有两种,要么用C#light来做,但是它的效果似乎不是很好。还有一种就是lua,可以是Xlua,tolua,等,现在用的最多的还是Xlua,这是腾讯开源的插件,我们可以直接用,从Github下载下来就可以用了。今天我们也是基于Xlua来做的。好了,先来看看效果。

dfb4d5626d1fd755239f7dbcca790956.png

这是一个简单的Xlua的案例,就是通过Xlua插件,然后让C#和lua交互。主逻辑都是在lua里面写的。那么我们来看看怎么做出来吧。

首先我们需要导入Xlua,这个没什么好说的。下载导入即可。然后我们就先来一个启动节点。然后挂载上luabehaviour脚本。然后创建一个text,在这里面写lua代码就可以了。它是这个样子的:

842ca4f0b65c31b2c59540d7b2ace343.png

在这个脚本里,我们有一个lua虚拟机,然后我们就需要装载我们的lua代码块,就在scriptEnv里面。这个环境表里面都是我们要用的。通过这个环境表,把我们写的一些变量set进去。就可以用起来了。如果是方法的话,就Get,比如start函数,我们从环境表中得到。然后在lua里面写对应的方法即可。再看看lua的代码块。

a8e4b1e9a2519b60f881356e1b1f280f.png

这是lua调用C#的方法,如果是函数的话,就用“:”,如果是变量的话,我们就用“.”。Self是我们在luabehaviour里面设置的变量,表示当前游戏物体。所以旋转的函数调用就是:self.transform:Rotate(0, 36 * CS.UnityEngine.Time.deltaTime, 0)。当然如果你还有其他的变量需要添加或者函数需要添加,我们都可以在luabehaviour里面加。比如:

9fe753717d15068073b1ffa1758a5343.png
ed096b547d73620ef2723b74cf71b145.png

这样的话,我们就完成了C#和lua的交互了。做到了这一步,热更新就有了基础了。然后就根据具体情况进行就可以了。好了这节就到这里了,需要源代码可以联系我。不喜勿喷哦。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值