XLua 热补丁学习

热补丁配置
第一步骤:类库准备
在含有xlua的工程中,把一个Tools 的目录拷贝到本项目中,不是放在Assets 中。
(注意tools 目录与Assets 平级关系) 
然后把插件目录下的Tools 文件下的Mono.Cecil.dll,Mono.Cecil.Mdb.dll,Mono.Cecil.Pdb.dll 放到项目下的E:\UnityProgram\LearnHotUpdate\Assets\XLua\Src\Editor 文件目录下
第二步骤:配置宏环境
Unity编辑器 file--> Build Setting--> Player Setting --> OtherSettings ---
-->Scripting Define Symbols[代码定义标识] 写入:"HOTFIX_ENABLE "
---> 然后(一定)回车确认。
第三步骤:
执行完成上面内容后,在Xlua菜单中,就会多一个“Hotfix Inject In
Editor”的选项。
第四步骤:
点击菜单“Xlua”--> “Generate Code”
(注意:凡是增加与更新[XLua.Hotfix]标记的C#代码,都需要执行一遍)
第五步骤:
执行菜单“xlua”-->"Hotfix inject in Editor" ,把生成的代码,注
入的编辑器中。 

 测试1

在unity 新建一个按钮,按钮绑定InvokeInLua 。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;

//  测试“HotFix 技术”
// 本质就是 lua中定义的方法,来替换出现bug的C#脚本(类)
//写完要生成代码 然后在菜单XLua-Hotfix inject in Editor
namespace HotUpdateModel
{
	[Hotfix]
	public class TestHotFix1 : MonoBehaviour {

		LuaEnv luaEnv = new LuaEnv();


		// Use this for initialization
		void Start () {
			Debug.Log("测试lua中的‘热补丁’ 技术");
			//执行一个调用函数
			InvokeRepeating("InvokeInCsharp", 1F, 2F);
		}

		//调用函数
		void InvokeInCsharp()
		{
			Debug.Log("在C#中执行的方法");
		}
		//lua语言执行的内容
		public void InvokeInLua()
		{
			Debug.Log("准备lua调用");
			luaEnv.DoString(@"xlua.hotfix(
			CS.HotUpdateModel.TestHotFix1,'InvokeInCsharp',function()
					 print('在lua中执行的方法')    
				end
			   )");
		}


	}
}

 测试2

在unity 新建2个按钮,一个绑定InvokeInCsharp,一个绑定InvokeInLua

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;

//写完要在菜单XLua-Generate Code,然后在菜单XLua-Hotfix inject in Editor
namespace HotUpdateModel
{
	[Hotfix]
	public class TestHotFix2 : MonoBehaviour {

		LuaEnv luaEnv = new LuaEnv();
		// Use this for initialization
		void Start()
		{
			Debug.Log("测试lua中的‘热补丁’ 技术");
		}

		//调用函数
		public void InvokeInCsharp()
		{
			Debug.Log("TestHotFix2 在C#中执行的方法");
		}
		//lua语言执行的内容
		public void InvokeInLua()
		{
			Debug.Log("准备lua调用");
			luaEnv.DoString(@"xlua.hotfix(
			CS.HotUpdateModel.TestHotFix2,'InvokeInCsharp',function()
					 print('TestHotFix2 这是在lua中执行的方法')    
				end
			   )");
		}

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值