记录一下稍许有用的小功能:
有一个使用unity开发的项目,发布出来是exe,需要开发一个入口去打开不同的其他Unity发布的exe。
一,打开另一个exe,并传值
这里记录一下方法,敲代码的没必要多啰嗦,直接贴代码:
string currentDirectory = Application.dataPath;
// 组合成绝对路径
string exePath = Path.Combine(currentDirectory, toPath);
// 规范化路径
exePath = Path.GetFullPath(exePath);
string args = "你要传的数据";
Debug.Log("Launched: " + exePath + " with arguments: " + args);
// 检查文件是否存在
if (System.IO.File.Exists(exePath ))
{
ProcessStartInfo startInfo = new ProcessStartInfo(exePath);
startInfo.Arguments = args;
Process.Start(startInfo);
}
else
{
Debug.LogError("File not found: " + path);
}
其中,传入的路径可以是绝对路径,也可以是相对路径:
绝对路径写法:toPath = "C:\\Path\\To\\ConsoleApp.exe";
相对路径写法:toPath = "..\\Path\\ConsoleApp.exe";
相对路径需要注意两者存放的位置,按照位置的不同适当修改。
二,接收传过来参数
// 获取命令行参数
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1)
{
Debug.Log("Received arguments:");
for (int i = 1; i < args.Length; i++) // args[0] 是应用程序路径
{
Debug.Log(args[i]);
}
}
else
{
Debug.Log("No arguments received.");
}
完毕!