xLua热更新(二)实现热更新

本文介绍如何在Unity中配置热更新环境及其实现原理。通过在C#类中添加特定属性,利用xLua工具生成Lua代码注入,从而实现游戏运行时动态修改逻辑的目的。

一、环境配置

要实现热更新功能,我们首先需要开启热更新的宏。操作方法是在「File->Build Settings->Player Settings->Player->Other Settings->Scripting Define Symbols」选项中添加HOTFIX_ENABLE

开启后,在xLua的菜单中就出现了「Hotfix Inject In Editor」选项。

当我们在开发补丁版本需要进行热更新测试时,都需要点击一次上图中的「Generate Code」选项重新生成一次代码,然后再点击「Hotfix Inject In Editor」进行注入。
如果注入时出现了如下错误信息,我们需要将xLua源码中的「Tools」文件夹复制到我们工程的根目录下。

以上两步操作如果成功的话,在控制台都会有相应提示。环境配置完成后,可以运行xLua自带的热更新示例,测试一下是否能热更成功。

二、热更新原理

首先引用一段xLua作者的话,介绍一下xLua实现热更新的原理(原文出处


热补丁的基本原理其实非常简单,了解后任何程序员都很容易分析出开销,比如对于这个类

public class Calc
{
   
   
    int Add(int a, int b)
   {
   
   
        return a + b
   }
}

打了hotfix标签后,xLua会在il层面注入代码,注入之后这个类会类似这样:

public class Calc
{
   
   
    static Func<object, int, int, int> hotfix_Add = null;
    int
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值