XLua热更新学习笔记(附 SubLime text --有Lua的关键字提示)

本文介绍了XLua热更新的实现过程,包括XLua与C#的连接步骤、热更新的具体操作,并提供了脚本示例。通过在C#脚本中添加特定注解实现热更新,同时分享了Sublime Text配置Lua关键字提示的方法,帮助开发者提升效率。

XLua是腾讯出的一款语言, 在GitHub上搜索Xlua第一个就是,里面有很多的腾讯XLua自带的案例说明等,可以先看说明和示例
下载下来XLua先配置XLua的环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此 XLUA的环境配置完成

XLua和C#的连接步骤

在这里插入图片描述

XLua的热更新步骤

在这里插入图片描述
脚本中需要注意的几个地方
1.是引用空间类型
2.是在要修改的脚本前面添加引用
3.是在要修改的方法前面写上[luaCallCsharp]
4.是在类前面写上[Hotfix]

下面是脚本示例,

加入要修改GameController脚本中的OnBigCountDownBtnClick这个方法
在这里插入图片描述在这里插入图片描述
热更新不需要改C#脚本在桌面建立新的文档命名为"******.lua.txt"
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;     //这里需要引用到XLua  和  System.IO
using System.IO;

/// <summary>
/// XLua的热更新测试
/// </summary>

public class FishHotFixTest : MonoBehaviour
{

    //需要一个Lua的虚拟机
    //xlua转Csharp中静态方法用'.'  成员方法用 ':'  成员属性用 ' . '
    private LuaEnv luaEnv;
	// Use this for initialization
	void Start () {
        luaEnv = new LuaEnv();
        luaEnv.AddLoader(MyLoader);
        luaEnv.DoString("require 'fishHotFixTest'");
	}
    private byte[] MyLoader(ref string filePath )
    {
        string path = @"C:\Users\Administrator\Desktop\fishHotFix\"+filePath+".lua.txt";

        return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));
    }

    private void OnDisable()
    {
        luaEnv.Dispose();
    }
    // Update is called once per frame
    void Update () {
		
	}
}

下面是文档中要热更新的内容

print("fish")
print("hennysky")
--成员变量用: 静态方法用.  成员属性用.
UnityEngine = CS.UnityEngine
xlua.hotfix(CS.GameController,'OnBigCountDownBtnClick',function(self)
	-- body更新逻辑
	--使PlayerGold变成10000
	self.playerGold = self.playerGold+10000
	UnityEngine.Object.Instantiate(self.goldEffect)

	self.bigCountDownBtn.gameObject:SetActive(true)
	self.bigTimer = 3

end)

sublime3压缩包解压即可
链接:https://pan.baidu.com/s/1mfrH1XYXxztP7Z4roShv7A
提取码:auwd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值