Xlua中C#调lua的一些总结

学习XLua的话首先我们需要导入XLua的包,在GitHub上面下载项目之后,我们需要导入的只是Xlua项目的Assets文件夹下的XLua文件夹和Plugins文件夹。导入成功之后在Unity的工具栏会有XLua这一栏,打开之后会有"Generate Code" 和"Clear Generated Code"这两个选项,作用分别是生成lua相关的文件和清除lua相关的文件,一次导入的话,我们需要先清空一次,再重新生成。
 
一 . lua解析器
 
      要运行在C#中运行lua代码的话,我们首先需要引入using XLua 这个命名空间,我们需要用到的是其空间下的LuaEnv,即lua解析器。使用lua解析其需要先new一个对象,通过这个对象使用DoString,他有三个参数分别是 byte[] chunk,我们要运行的lua代码,
string chunkName = “chunk”,可以传入文件名lua代码报错时就会显示是哪个文件报错了,LuaTable env = null,这个和上面的类似,传入解析器报错时显示是哪个解析器出的问题。
     DoString除了可以运行普通的lua代码外还需要注意的是,它运行lua的require函数,估计是通过Resources.Load去加载lua脚本,所以此时需要把文件放在Resources文件夹下,而Resources不支持lua文件,所以我们要在lua脚本后面添加txt的后缀。
     除此之外解析器中还有两个比较重要的函数分别是Tick()和Dispose(),作用分别是清除lua中我们没有手动释放的对象(垃圾回收),一般在帧更新中定时执行或者切换场景时执行,另一个则是消耗解析器。
 
二.路径重定向
 
     在lua项目中,我们的lua代码是不可能存放在Resources文件夹下的,这里XLua为我们提供了lua解析器的读取路径重定向的方法AddLoader(...),它需要我们传入一个委托  byte[] CustomLoader( ref string filepath) ,我们可以自己去实现,首先是拼凑出文件的路径 string path

你可能感兴趣的:(xlua,c#)