1.helloworld LuaEnv luaenv = new LuaEnv();
luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
luaenv.Dispose();
LuaEnv luaenv = new LuaEnv();
luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
luaenv.Dispose();
2.通过loader引用文件夹里面的lua程序
require引用resurces文件夹的程序
LuaEnv evn = new LuaEnv(); //构造虚拟机
//evn.DoString(ta.text);
evn.DoString("require 'helloLua'"); //相当于using,会引用并执行(loader)但还是得放在resurces文件夹
evn.Dispose();
自定义loader
void Start () {
LuaEnv env = new LuaEnv();
env.AddLoader(myLoader); //自定义loader方法
env.DoString("require 'luadiy'"); //执行lua类或者语句
env.Dispose();
}
private byte[] myLoader(ref string filePath) //先用自定义的loader去加载,返回输出字节数组,如果没有返回则会调用下个load继续加载
{
print(filePath); //文件名
string str = Application.dataPath + "/xxx/" + filePath + ".lua.txt";
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(str)); //用资源读取类读取这个目录文件(lua类),转换为字节流数组
//string s = "print(123)";
return null; //返回(类)给想要执行的lua程序
//return System.Text.Encoding.UTF8.GetBytes(s);
}
3.csCallLua
1.全局变量直接用Global.Get
//double a= evn.Global.Get<double>("a");
//string b = evn.Global.Get<string>("b");
//bool c = evn.Global.Get<bool>("x");
2.访问table