美文网首页
XLua-热更新(HotFix)

XLua-热更新(HotFix)

作者: 祝你万事顺利 | 来源:发表于2019-06-06 11:29 被阅读0次

仿照XLua的官方例子,我们做一个XLua的热更新
1.按照hotfix.md的使用说明

1、添加HOTFIX_ENABLE宏打开该特性(在Unity3D的File->Build Setting->Scripting Define Symbols下添加)。编辑器、各手机平台这个宏要分别设置!如果是自动化打包,要注意在代码里头用API设置的宏是不生效的,需要在编辑器设置。
(建议平时开发业务代码不打开HOTFIX_ENABLE,只在build手机版本或者要在编译器下开发补丁时打开HOTFIX_ENABLE)
2、执行XLua/Generate Code菜单。
3、注入,构建手机包这个步骤会在构建时自动进行,编辑器下开发补丁需要手动执行"XLua/Hotfix Inject In Editor"菜单。注入成功会打印“hotfix inject finish!”或者“had injected!”。

2.内嵌模式

默认通过小工具执行代码注入,也可以采用内嵌到编辑器的方式,定义INJECT_WITHOUT_TOOL宏即可。

3.代码实例
在C#代码中我们要将热更新的类添加特性[Hotfix]
这里我们要更改一个Update方法通过XLua的Hotfix

[Hotfix]
public class CSHotFix : MonoBehaviour {    
    void Start () {
        LuaManager.Instance.luaEnv.DoString("require 'MyHotFix'", "MyHotFix.lua.txt");
    }   
    void Update () {
        if (Input.GetMouseButtonDown(1))
        {
            print("right mouse put");
        }
    }
}

在Lua代码中,使用xlua.hotfix方法传入要修改的类,被修改的方法,新的方法。这样在程序运行的时候,就会执行Lua的代码了

xlua.hotfix(CS.CSHotFix,"Update",function ()
    if CS.UnityEngine.Input.GetMouseButtonDown(1) then
        local obj = CS.UnityEngine.GameObject.CreatePrimitive(CS.UnityEngine.PrimitiveType.Sphere)
        obj.name = "made in Lua";
    end
end)

4.一个类的私有属性可以访问要在Lua中添加

xlua.private_accessible(CS.CSHotFix);

相关文章

  • XLua-热更新(HotFix)

    仿照XLua的官方例子,我们做一个XLua的热更新1.按照hotfix.md的使用说明 1、添加HOTFIX_EN...

  • Android热更新之Nuwa实践

    今天给大家讲一下热更新之Nuwa实践。 热更新的框架有很多,比如AndFix、HotFix、Dexposed以及N...

  • 热更新(hotfix)详解-双亲委托

    前沿: 随着国内手机端的火热,有一些软件公司为了避免为了一个很小bug频繁的更新软件,从而给用户带来不好的影响,一...

  • 客户端路由动态配置——可能是最简单的热更新方案

    Abstract 说到热更新,大多数人的第一印象肯定是AndFix或者HotFix等热更新框架。但是一来这些框架学...

  • unity热更新杂谈

    热更新的含义 首先想说的是这是一个工业界提出的概念,其实没有特别严谨权威的定义。简单来说,热更新(hotfix)是...

  • 阿里百川Hotfix热更新

    目前处于公测阶段的Android 热修复技术,学习下,以后应该会变成收费的。 阿里云Sophix 3.0.6现已上...

  • iOS JSPatch 热更新(HotFix)线上bug

    苹果大大今天发出了警告邮件,貌似禁掉了热更新;具体关注 JSPatch issues 和 Facebook RN...

  • Android HotFix热更新集成教程

    1.快速集成 1.成为开发者,并创建一个应用,申请使用热更新(申请需要写理由,审核时间为4小时以内) 2.下载需要...

  • Flutter 热更新-1.12.13+hotfix5

    接上篇1.12.13版本启动流程 贴个效果图,这里并非跳转到两个不同页面=。= 上篇结尾分析过加载逻辑在Flutt...

  • Android关于热修复

    热修复: 热修复(也称热补丁、热修复补丁,英语:hotfix)是一种包含信息的独立的累积更新包,通常表现为一个或多...

网友评论

      本文标题:XLua-热更新(HotFix)

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