登录/注册
梧桐雨
2256
占位
1
占位
0
浏览量
占位
粉丝
占位
关注
热更新解决方案--tolua学习笔记
梧桐雨
2021-05-09 17:29:39 2021-05-09
129
0

一.tolua使用准备工作:从GitHub上下载tolua(说明:这篇笔记使用的Unity版本是2019.4.18f1c1,使用的tolua是2021年4月9日从GitHub上Clone的tolua工程文件,没有下载release版本,使用的ide为vscode)

1.在GitHub上搜索tolua,点击下图搜索结果中选中的项目进入:

2.进入后Clone项目或者下载右边的release发布出来的tolua,这里我选择的是Clone代码:

 

   3.导入tolua,将下载的tolua工程中的相关文件复制到自己的工程中。

将Luajit和Luajit64这两个目录复制。注意:这两个目录复制前和Assets目录同级,复制后也应该和Assets目录同级。

将Assets目录下的所有文件夹复制到自己的工程文件中Assets目录下。

打开Unity,会出现一个选择框,选择左边按钮。

接下来出现自动生成的选择框,点击确定。

成功导入后上方菜单栏出现Lua菜单,如果刚才不小心选择了取消,这里也可以选择Generate All重新生成。

4.其他功能脚本导入,主要是AB包工具(在Unity中通过PackageManager导入AB包工具,导入方法详见:热更新基础--AssetBundle学习笔记)和AB包管理器(为了方便加载AB包,我们可以制作一个AB包的管理器脚本,脚本详见:热更新基础--AssetBundle学习笔记

二.C#调用lua

1.在C#中使用lua代码,和xlua类似,tolua也有一个解析器类用于执行lua代码

void Start()
{
//初始化tolua解析器
LuaState state = new LuaState();
//启动解析器
state.Start();
//执行lua代码
state.DoString("print('欢迎来到tolua')");
//执行代码时可以自定义代码出处,方便查看代码问题
state.DoString("print('hello tolua')","CSharpCallLua.cs");
//执行lua文件,执行文件时后缀可加可不加
state.DoFile("Main");
//执行lua文件,不添加文件后缀
state.Require("Main");
//检查解析器栈顶是否为空
state.CheckTop();
//销毁解析器
state.Dispose();
//置空
state = null;
}

和xlua对比,解析器的使用方法类似。tolua解析器对象需要Start方法启动后使用,xlua直接使用解析器对象;tolua提供了DoString方法执行单句lua代码、DoFile方法执行lua文件(后缀可选)、Require方法执行lua文件(不加后缀),而xlua只提供了DoString方法执行单句lua代码,要执行lua文件需要使用DoString方法执行lua中的require语句;tolua销毁解析器时必须先执行Ch

暂无评论