• XLua---热更新


    一.XLua环境配置

    1.将XLua中  PluginXLua 复制到热更新的工程中,注意要放在 Assets 子目录

       

    2.开启宏 HOTFIX_ENABLE

    File--->bulidSetting--->playerSetting--->scriptsDefineSymbols

    3 .Tools  工具文件夹  复制到Assets同级目录

      

    4. 拷贝 unity 安装目录 ,找到下方文件(.dll)

       (目录取决于自己安装unity的位置)

         将上方文件(.dll)放入下方unity项目文件夹下

                (目录取决于自己unity项目的位置)

                 

    二.Lua和C#的链接 步骤

    1.清除C#和Lua链接文件

    2.生成链接的中间文件

    3.注入

    三.XLua热更新流程

    1.从项目启动,用C#开发

    2.将来哪一块需要更新    [Hotfix]     C#   方法(ShowPet)

         ①.引入命名空间 using XLua;

         ②.在需要更新的类上方加入标签  [Hotfix] 

         ③.在需要更新的方法上方加入  [LuaCallCSharp]     (下面提供了一个类和类里面的两个方法)

       类:

             

       方法:

             

    注意:单例模式Lua不能识别,要转换为下方方法

     ④.生成Lua和C#链接的中间脚本

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using XLua;
    using System.IO;
    public class FishHotFixTest : MonoBehaviour {
    
        private LuaEnv luaEnv;
        void Start () {
            luaEnv = new LuaEnv();
            luaEnv.AddLoader(MyLoader);
            luaEnv.DoString(" require 'fishHotFix'"); //fishHotFix 要更新的逻辑,Lua文件
        }
        public byte[] MyLoader(ref string filepath)
        {
            //文件地址(根据自己文件夹位置写,这里我放在了桌面的fishHotfix文件夹中)
            string path = @"C:UsersAdministratorDesktopfishHotfix" + filepath + ".lua.txt"; 
            return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));         
        }
        private void OnDisable()
        {
            luaEnv.DoString(" require 'fishHotFixDispose'"); //fishHotFixDispose销毁虚拟机文件
            luaEnv.Dispose();
        }    
    }

        ⑤.注入

       (注意:一旦更改C#脚本,需要重新进行下面操作)

      

    3.写对应的Lua脚本进行热更新(ShowPet)

  • 相关阅读:
    HelloWorld入门程序
    list的几种遍历方式
    遍历map的几种方法
    Java动态代理
    七月七日学习记录
    七月六日学习报告
    钢镚儿使用体验
    TD tree 使用体验
    学习笔记154—Matlab 如何写入txt?
    学习笔记153—matlab中小数如何取整?
  • 原文地址:https://www.cnblogs.com/lk95/p/10124022.html
Copyright © 2020-2023  润新知