因为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发布的作者,点进这个人的主页
然后就可以把整个ToLua下载下来了
使用ToLua
点击Assets
这5个文件夹是我们要用到的
--Editor: Lua用到的工具
--Lua: 放我们写的lua脚本
--Plugin 这里解析lua用到的库
--Source: 绑定c#脚本 自动生成wrap文件 将c#注册进lua 工具自动生成
--ToLua tolua 和 c# 交互的核心代码。全局绑定的方式
在ToLua/Example 有交互的事例 有兴趣的可以看看,但是在游戏发布时可以删掉。
这里我是测试如何使用ToLua所以我新创建一个Unity项目
可以把这5个文件夹放到项目中。
导入以后看到这个
第一步
如果要注册c#脚本到Lua: 在Editor 的CustomSetings.cs的
public static BindType[] customTypeList 里面
这里面已经注册了一些unity的静态类。
接下来我测试一下自己写的类 创建一个c#文件
然后在customTypeList 追加我么写的类
这样我们自己写的类就注册进去了
第二步
GenerateAll:表示将CustomSetings里面注册的c#脚本生成Wrap文件。生成的文件在soucres/generate下
点击GenerateAll 后就会生成很多wrap文件 刚刚我自己在CustomSetings追加注册的“RotateSelf”也生成了wrap文件
在svn中的wrap文件最好不要上传
简单看一下wrap文件,就拿UnityEngine_GameObjectWrap举例
GameObject 在CustomSetings已近被Tolua注册过,所以当点击GenerateAll就会生成一个UnityEngine_GameObjectWrap的文件
这个问价中的Register方法里面的就是lua可以调用的
测试;
可以在我自己写的RotateSelf脚本中 写个方法然后在生成wrap文件看看自己写的方法有没有加入到Register中
当前的RotateSelfWrap
然后在我们的RotateSelf加个方法
然后点击GenerateAll
看见没 我们自己写的方法在wrap问价那种就有了这个方法
启动lua 还需要挂载LuaClient
因为在这个LuaClient中有个DoFile(“main.lua”)这个方法所以就可以在main中写代码了
这个在CallMain中调用了Main方法,所以lua就首先执行Main方法
然后看这个lua代码
然后执行unity
都有打印。