Lua之Lua源文件批量转换为luac字节码文件

news/2025/1/12 0:47:06/

准备的工具:luac.exe CSDNhttps://mp.csdn.net/mp_download/manage/download/UpDetailed

Unity版:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;public static class Batch_LuaToLuac
{[UnityEditor.MenuItem("Tools/LuaToLuac")]static void ToLuac(){//准备进程信息string luacExe = "luac53.exe";  //luac.exe工具文件名string luacExe_Dir = @"D:\workspace\Test\T4\PureProject_Develop\Development2020\Tools\Lua"; //luac.exe工具路径string luacExe_fullpath = Path.Combine(luacExe_Dir, luacExe);   //luac.exe工具完整路径var processStartInfo = new System.Diagnostics.ProcessStartInfo();processStartInfo.FileName = luacExe_fullpath;processStartInfo.UseShellExecute = true;processStartInfo.ErrorDialog = true;processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;void DoExe(string srcFile, string outFile){//执行转换进程try{string args = string.Format("-o {0} {1}", outFile, srcFile);processStartInfo.Arguments = args;var process = System.Diagnostics.Process.Start(processStartInfo);process.WaitForExit();}catch (Exception ex){Debug.LogError(ex.ToString());}}//lua源文件路径var luaFileDir = Application.dataPath + "/LuaSource";//生成的luac文件路径var outPutDir = Path.Combine(luaFileDir, "luac");if (Directory.Exists(outPutDir)) Directory.Delete(outPutDir, true);Directory.CreateDirectory(outPutDir);var files = Directory.GetFiles(luaFileDir, "*.lua", SearchOption.TopDirectoryOnly);foreach (var file in files){if (file.Contains(".meta")) { continue; }var outFile = Path.Combine(outPutDir, Path.GetFileNameWithoutExtension(file) + ".luac");DoExe(file, outFile);}AssetDatabase.Refresh();}
}


http://www.ppmy.cn/news/1062944.html

相关文章

【LeetCode-中等题】240. 搜索二维矩阵 II

文章目录 题目方法一:暴力双for查找方法二:二分查找,对每二维数组进行拆分,一行一行的进行二分查找方法三:列倒序Z字形查找 题目 方法一:暴力双for查找 public boolean searchMatrix(int[][] matrix, int …

space-around和space-between区别

space-around和space-between是CSS中用于控制Flex容器中项目之间间距的两个属性。 justify-content: space-around;:这个属性将在Flex容器中平均分配项目之间的空间,同时在首尾两侧也留有一半的空间。也就是说,项目之间的间隔是相等的&#x…

计算机竞赛 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据…

跨地区、跨平台、跨网络,如何解决远程IT运维集中管理难题

面对日益激增的IT复杂性和业务需求的快速变化,IT应用在运行过程中发生性能下降或者服务不可用等故障的可能性大大增加,如何更高效、更智能地开展IT运维,保证业务的连续性和IT系统的稳定性,成为企业业务发展的迫切需要。IT运维作为…

leetcode739. 每日温度 单调栈

自己思路: 想到用两个栈,一个维护元素、另一个维护下标。但是还是无法处理有重复元素的问题(用哈希表来存储的时候)。所以就看了答案的思路。 答案思路: 从前往后遍历,维护一个单调栈。栈存放数组的下标。…

C#匿名方法增加、删除委托

匿名方法给我们带来了方便,那么如何增加删除匿名方法中附加的委托(事件)呢 一般写法: 1 2 3 4 this.Loaded (sender, e) > { //Do something }; 进化写法: 1 2 3 4 5 6 7 this.Loaded …

C# winform加载yolov8模型测试(附例程)

第一步:在NuGet中下载Yolov8.Net 第二步:引用 using Yolov8Net; 第三步:加载模型 private IPredictor yolov8 YoloV8Predictor.Create("D:\\0MyWork\\Learn\\vs2022\\yolov_onnx\\best.onnx", mylabel); 第四步:图…

学习文档链接

SpringBoot Activiti 完美结合,快速实现工作流(最详细版) - 知乎 (zhihu.com) easypoi: POI 工具类,Excel的快速导入导出,Excel模板导出,Word模板导出,可以仅仅5行代码就可以完成Excel的导入导出,修改导出格式简单粗暴,快速有效,easypoi值得…