新项目开启,unity-lua起步

  c#和lua的交互,简单来说,可以分为两个方面。

  1.c#调用lua,通过封装好的dll库,c#通过api加载执行lua代码。

  2.lua调用c#. c#将自己的函数暴露给lua,lua通过注册的名称调用c#代码。


在unity里,由于有大量的c#代码,所以一般都用现成的类库,我将要使用的是tolua.以及对应的框架。

tolua作为一个成熟框架,已经帮我们做了大量的工作,但为了更好的使用它,我们还是需要了解一下他的基本原理。

首先它的菜单含有大量的gen xxx按钮,这些就是将unity里面的c#类,函数,成员暴露给lua的工具。你可以执行Gen All来暴露所有的接口。

也可以只执行特定类型暴露。

如果你有自己要暴露的第三方类,那么可以自己在CustomSettting里面进行添加。

具体如下:

Lua/Gen Lua Wrap Files  c#类

Lua/Gen Lua Delegates  C#委托,这里需要注意的是,在c#类里面使用的委托都会被自动暴露,不需要在这个部分额外添加。

Lua/Gen LuaBinder File   根据上面的文件生成最终的luaBind文件。至此,所有的接口都已经暴露给lua层。


当然,如果你想要全部从0开始,那么以上的步骤其实已经够了。但如果你想要用一些常用的工具类,那么lua_framework已经提供了。

我打算利用这些巨人的产物。那么可以继续做以下的几步工作。


Lua/Copy Lua  files to Resources,将所有的lua工具类拷贝到Resrouce lua文件夹下面。

Lua/Copy Lua  files to Persistent,将所有的lua工具类拷贝到下载目录。

Lua/Build Lua files to Resources (PC) luajit (我发现路径不对,自己修改了部分代码,不知道是不是两个作者没有协调好引起的)

Lua/Build Lua files to Persistent (PC) 同上

Lua/Build bundle files not jit 将lua代码打包成ab

Lua/Build Luajit bundle files   (PC) 将lua代码打包成ab (jit版本)

Lua/Clear all Lua files 将c#里面的基本数据类型暴露给lua

至此,我们理解了它的准备工作。


你可能感兴趣的:(unity-lua)