编辑模式下运行lua文件

作者:追风剑情 发布于:2018-4-10 17:43 分类:Lua

示例:导出lua语言包到一个csv文件


  1. [MenuItem ("Tool/ExportLuaLanguage CSV")]
  2. static void ExportLuaLanguageCSV()
  3. {
  4. //加载lua文件
  5. string luaLangFile = Application.dataPath + @"\Lua\helper\CErrorCode.lua";
  6. StreamReader reader = File.OpenText(luaLangFile);
  7. string script = reader.ReadToEnd();
  8. reader.Close();
  9.  
  10. //执行lua文件
  11. LuaEnv evn = new LuaEnv();
  12. LuaFunction fun = evn.LoadString(script);
  13. fun.Call();//必须要执行一下
  14.  
  15. //获取想导出的table
  16. LuaTable CErrorCode = evn.Global.Get<string, LuaTable>("CErrorCode");
  17. StringBuilder sb = new StringBuilder();
  18. //这里根据自己定义的lua对象格式来遍历
  19. CErrorCode.ForEach<string, LuaTable>((k1, v1)=>{
  20. if(v1 == null)
  21. return;
  22. v1.ForEach<string, string>((k2, v2)=>{
  23. v2 = v2.Replace("\n", "\\\\n");
  24. sb.AppendFormat("{0}.{1}\t{2}\n", k1, k2, v2);
  25. });
  26. });
  27. evn.Dispose();
  28.  
  29. //保存为.csv文件
  30. string savefile = EditorUtility.SaveFilePanel("保存", Application.dataPath, "CErrorCode", "csv");
  31. StreamWriter writer = File.CreateText(savefile);
  32. writer.Write(sb.ToString());
  33. writer.Flush();
  34. writer.Close();
  35. Debug.Log(savefile);
  36. }

标签: xLua

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号