ToLua 使用教程 上

 

 

因为Lua语言比较简单 而且之前前人都有总结,过多总结Lua感觉有点冗余,我把学习lua教程的一个网址放上去可以随时查看lua的语言,这是菜鸟网的教程相当详细。

http://www.runoob.com/lua/lua-tutorial.html  

为啥用Lua 就是因为lua是解析型语言可以热更新。

 

ToLua在很早之前的一些程序多数使用Tolua所以他已经是非常成熟的。在2015/6月腾讯出了Xlua在新一波的程序中多数已经使用Xlua 但是很多公司的老项目还是使用的是ToLua

ToLua下载:可以在GitHub上搜索ToLua

ToLua 使用教程 上_第1张图片

这个人就是ToLua发布的作者,点进这个人的主页

ToLua 使用教程 上_第2张图片

然后就可以把整个ToLua下载下来了

 

使用ToLua

点击Assets

ToLua 使用教程 上_第3张图片

这5个文件夹是我们要用到的

--Editor:  Lua用到的工具

--Lua:    放我们写的lua脚本

--Plugin   这里解析lua用到的库

--Source:  绑定c#脚本 自动生成wrap文件 将c#注册进lua 工具自动生成

--ToLua   tolua 和 c# 交互的核心代码。全局绑定的方式

 

在ToLua/Example 有交互的事例 有兴趣的可以看看,但是在游戏发布时可以删掉。

这里我是测试如何使用ToLua所以我新创建一个Unity项目

可以把这5个文件夹放到项目中。

 

导入以后看到这个

ToLua 使用教程 上_第4张图片就表面ToLua导入成功了。

第一步

如果要注册c#脚本到Lua: 在Editor 的CustomSetings.cs的

public static BindType[] customTypeList 里面

这里面已经注册了一些unity的静态类。

接下来我测试一下自己写的类 创建一个c#文件

ToLua 使用教程 上_第5张图片

然后在customTypeList 追加我么写的类

ToLua 使用教程 上_第6张图片

这样我们自己写的类就注册进去了

第二步

lua工具栏中ToLua 使用教程 上_第7张图片

GenerateAll:表示将CustomSetings里面注册的c#脚本生成Wrap文件。生成的文件在soucres/generate下

现在可以观察一些Source文件,只有3个文件。ToLua 使用教程 上_第8张图片

点击GenerateAll 后就会生成很多wrap文件 刚刚我自己在CustomSetings追加注册的“RotateSelf”也生成了wrap文件

ToLua 使用教程 上_第9张图片

在svn中的wrap文件最好不要上传

简单看一下wrap文件,就拿UnityEngine_GameObjectWrap举例

GameObject CustomSetings已近被Tolua注册过,所以当点击GenerateAll就会生成一个UnityEngine_GameObjectWrap的文件

ToLua 使用教程 上_第10张图片

这个问价中的Register方法里面的就是lua可以调用的

测试;

可以在我自己写的RotateSelf脚本中 写个方法然后在生成wrap文件看看自己写的方法有没有加入到Register中

当前的RotateSelfWrap

ToLua 使用教程 上_第11张图片

然后在我们的RotateSelf加个方法

ToLua 使用教程 上_第12张图片

然后点击GenerateAll

ToLua 使用教程 上_第13张图片

看见没  我们自己写的方法在wrap问价那种就有了这个方法

 

启动lua 还需要挂载LuaClient

ToLua 使用教程 上_第14张图片

 

 因为在这个LuaClient中有个DoFile(main.lua)这个方法所以就可以在main中写代码了ToLua 使用教程 上_第15张图片

ToLua 使用教程 上_第16张图片

这个在CallMain中调用了Main方法,所以lua就首先执行Main方法

然后看这个lua代码

ToLua 使用教程 上_第17张图片

然后执行unity

ToLua 使用教程 上_第18张图片

都有打印。

你可能感兴趣的:(Tolu,Unity)